LZRead 函式 (lzexpand.h)

從檔案讀取 (最多) 指定的位元組數目,並將其複製到緩衝區。

語法

INT LZRead(
  [in]  INT  hFile,
  [out] CHAR *lpBuffer,
  [in]  INT  cbRead
);

參數

[in] hFile

檔案的控制碼。

[out] lpBuffer

接收從檔案讀取位元組的緩衝區指標。 請確定此緩衝區大於 cbRead

[in] cbRead

要讀取的位元組計數。

傳回值

如果函式成功,傳回值會指定讀取的位元組數目。

如果函式失敗,傳回值為LZERROR_* 程式碼。 這些代碼的值小於零。 請注意, LZRead 不會呼叫 SetLastErrorSetLastErrorEx;因此,其失敗不會影響執行緒的最後一個錯誤碼。

以下是 LZRead 在失敗時可傳回的錯誤碼清單。

傳回碼 描述
LZERROR_BADINHANDLE
識別來源檔案的控制碼無效。 無法讀取檔案。
LZERROR_BADOUTHANDLE
識別目的地檔案的控制碼無效。 無法寫入檔案。
LZERROR_BADVALUE
其中一個輸入參數無效。
LZERROR_GLOBALLOC
已超過開啟壓縮檔案的數目上限,或無法配置本機記憶體。
LZERROR_GLOBLOCK
LZ 檔案控制碼無法鎖定。
LZERROR_READ
來源檔案格式無效。
LZERROR_WRITE
輸出檔案的空間不足。
 

此函式沒有擴充的錯誤資訊;請勿呼叫 GetLastError

備註

必須藉由呼叫 LZInitLZOpenFile 函式來擷取識別檔案的控制碼。

如果壓縮檔案, LZRead 會在檔案的展開映射上運作,並將資料的位元組複製到指定的緩衝區。

在 Windows 8 和 Windows Server 2012 中,下列技術支援此函式。

技術 支援
伺服器訊息區 (SMB) 3.0 通訊協定
SMB 3.0 透明容錯移轉 (TFO)
具有向外延展檔案共用的 SMB 3.0 (SO)
叢集共用磁片區檔案系統 (CsvFS)
彈性檔案系統 (ReFS)
 

CsvF 會針對壓縮檔進行重新導向的 IO。

需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 lzexpand.h (包含 Windows.h)
程式庫 Lz32.lib
Dll Lz32.dll

另請參閱

檔案壓縮和解壓縮

檔案管理功能

LZInit

LZOpenFile

LZSeek