Reads (at most) the specified number of bytes from a file and copies them into a buffer.
INT LZRead( INT hFile, CHAR *lpBuffer, INT cbRead );
A handle to the file.
A pointer to a buffer that receives the bytes read from the file. Ensure that this buffer is larger than cbRead.
The count of bytes to be read.
If the function succeeds, the return value specifies the number of bytes read.
If the function fails, the return value is an LZERROR_* code. These codes have values less than zero. Note that LZRead calls neither SetLastError nor SetLastErrorEx; thus, its failure does not affect a thread's last-error code.
The following is the list of error codes that LZRead can return upon failure.
||The handle identifying the source file is not valid. The file cannot be read.|
||The handle identifying the destination file is not valid. The file cannot be written.|
||One of the input parameters is not valid.|
||The maximum number of open compressed files has been exceeded or local memory cannot be allocated.|
||The LZ file handle cannot be locked down.|
||The source file format is not valid.|
||There is insufficient space for the output file.|
There is no extended error information for this function; do not call GetLastError.
If the file is compressed, LZRead operates on an expanded image of the file and copies the bytes of data into the specified buffer.
In Windows 8 and Windows Server 2012, this function is supported by the following technologies.
|Server Message Block (SMB) 3.0 protocol||Yes|
|SMB 3.0 Transparent Failover (TFO)||Yes|
|SMB 3.0 with Scale-out File Shares (SO)||Yes|
|Cluster Shared Volume File System (CsvFS)||Yes|
|Resilient File System (ReFS)||Yes|
CsvFs will do redirected IO for compressed files.
|Windows version||Windows XP [desktop apps only] Windows Server 2003 [desktop apps only]|
|Header||lzexpand.h (include Windows.h)|