BackupWrite

機能
バックアップを復元する
Declare Function BackupWrite Lib "kernel32.dll"  _
(ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToWrite As Long, _
lpNumberOfBytesWritten As Long, ByVal bAbort As Long, ByVal bProcessSecurity As Long, _
lpContext As Long ) As Long
Declare Function BackupWrite Lib "kernel32.dll"  _
(ByVal hFile As Integer, lpBuffer As Byte, ByVal nNumberOfBytesToWrite As Integer, _
lpNumberOfBytesWritten As Integer, ByVal bAbort As Integer, ByVal bProcessSecurity As Integer, _
lpContext As Integer ) As Integer

BOOL BackupWrite(
HANDLE hFile,
LPBYTE lpBuffer,

DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberOfBytesWritten,

BOOL bAbort,
BOOL bProcessSecurity,
LPVOID *lpContext

);
引数
hFile

復元するファイル、またはディレクトリのハンドル
関数は、このファイルにデータを書き込む
ハンドルを取得するには、CreateFile()関数を使う
ハンドルにFILE_FLAG_NO_BUFFERINGフラグが指定されていると失敗する。
lpBuffer
関数がデータを読み取るバッファへのアドレス(ポインタ)
nNumberOfBytesToWrite
バッファのサイズ
WIN32_STREAM_ID構造体のサイズよりも大きい値を指定する必要がある
(戻り値)実際に書き込まれたバイト数
bAbort
1のとき、すべてのバッファの解放
bProcessSecurity
ファイル or ディレクトリのアクセス制御リスト(ACL)データを復元するかどうかを指定する
1のとき     ファイルハンドルやディレクトリハンドルを開く前に
             WRITE_OWNERとWRITE_DACアクセス権を指定しておく必要があるハンドルに
             これらのアクセス権が設定されていない場合、
             システムによりACLデータへのアクセスが拒否され
             ACLデータを復元することができない
内部データ構造体へのポインタを受け取って保持する変数へのポインタ。
関数は、バックアップ操作中にこの内部データ構造体を使ってコンテキスト情報を維持する。
hFileに指定したハンドルに対して、この関数を初めて実行するときは0
関数はデータ構造体にメモリを割り当て、変数にこのデータ構造体を示す値を設定する。
複数回関数を呼び出す間に、このパラメータの値またはこの変数が保持する値を変更してはならない。
戻り値
正常終了のとき                0以外
エラーのとき                  0
備考
BackupRead()関数によりバックアップされたデータは、この関数への入力にのみ使うことができる。。

拡張エラー情報を取得するには、GetLastError()関数を使う