BackupWrite
The BackupWrite
function writes a stream of data from a buffer to a specified file or directory.
The data must be divided into substreams separated by WIN32_STREAM_ID
BOOL BackupWrite(
HANDLE hFile, |
// handle to file
or directory |
LPBYTE lpBuffer, |
// pointer to
buffer containing data to write |
DWORD nNumberOfBytesToWrite, |
// number of bytes
to write |
LPDWORD lpNumberOfBytesWritten, |
// pointer to
variable to receive number of bytes written
|
BOOL bAbort, |
// termination type
|
BOOL bProcessSecurity, |
// process security
|
LPVOID *lpContext |
// pointer to
pointer to internal context information |
); |
|
Parameters
hFile
Handle to the
file or directory being restored. The function writes data to this file. You
obtain this handle by calling the CreateFileXN35YD function.
The BackupWrite
function fails if CreateFile was called with the flag
FILE_FLAG_NO_BUFFERING. In this case, the GetLastError
lpBuffer
Pointer to a
buffer that the function writes data from.
nNumberOfBytesToWrite
Specifies the
length of the buffer. The buffer size
must be greater than the size of a WIN32_STREAM_ID structure.
lpNumberOfBytesWritten
Pointer to a
variable that, when the function returns, contains the number of bytes
written.
bAbort
Specifies
whether BackupWrite terminated abnormally. If this value is TRUE, the
operation terminated abnormally and all buffers were deallocated.
bProcessSecurity
Specifies
whether the function will restore the access-control list (ACL) data for the
file or directory.
If bProcessSecurity
is TRUE, you need to have specified
WRITE_OWNER and WRITE_DAC access when opening the file or directory
handle. If the handle does not have those access rights, the operating system
denies access to the ACL data, and ACL data restoration will not occur.
lpContext
Pointer to a
variable that receives and holds a pointer to an internal data structure used
by BackupWrite to maintain context information during a restore operation.
You must set
the variable pointed to by lpContext to NULL before the first call to BackupWrite
for the specified file or directory. The function allocates memory for the
data structure, and then sets the variable to point to that structure. You must
not change lpContext or the variable that it points to between calls to BackupWrite.
To release
the memory used by the data structure, call BackupWrite with the bAbort
parameter set to TRUE when the restore operation is complete.
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero, indicating that an I/O error
occurred. To get extended error information, call GetLastError
Remarks
The
BACKUP_LINK stream type lets you restore files with hard links.
Data obtained
by the BackupRead function should only be used as input to the BackupWrite
function.
See Also