次の方法で共有


LZRead 関数 (lzexpand.h)

指定したバイト数 (最大) をファイルから読み取り、バッファーにコピーします。

構文

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

パラメーター

[in] hFile

ファイルへのハンドル。

[out] lpBuffer

ファイルから読み取られたバイトを受け取るバッファーへのポインター。 このバッファーが cbRead より大きくなるようにします。

[in] cbRead

読み取るバイト数。

戻り値

関数が成功した場合、戻り値は読み取られたバイト数を指定します。

関数が失敗した場合、戻り値はLZERROR_* コードです。 これらのコードの値は 0 未満です。 LZRead では SetLastError も SetLastErrorEx呼び出しません。したがって、そのエラーはスレッドの最後のエラー コードには影響しません。

エラー時に LZRead が返すことができるエラー コードの一覧を次に示します。

リターン コード 説明
LZERROR_BADINHANDLE
ソース ファイルを識別するハンドルが無効です。 ファイルを読み取ることができません。
LZERROR_BADOUTHANDLE
宛先ファイルを識別するハンドルが無効です。 ファイルを書き込むことができません。
LZERROR_BADVALUE
入力パラメーターの 1 つが無効です。
LZERROR_GLOBALLOC
開いている圧縮ファイルの最大数を超えているか、ローカル メモリを割り当てることができません。
LZERROR_GLOBLOCK
LZ ファイル ハンドルをロックダウンすることはできません。
LZERROR_READ
ソース ファイルの形式が無効です。
LZERROR_WRITE
出力ファイルの領域が不足しています。
 

この関数の拡張エラー情報はありません。 GetLastError を呼び出さないでください。

解説

ファイルを識別するハンドルは、 LZInit 関数または LZOpenFile 関数を呼び出して取得する必要があります。

ファイルが圧縮されている場合、 LZRead はファイルの展開されたイメージに対して動作し、指定されたバッファーにデータのバイトをコピーします。

Windows 8 と Windows Server 2012 では、この関数は、次のテクノロジによってサポートされています。

テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 Transparent Failover (TFO) はい
スケールアウト ファイル共有 (SO) を使う SMB 3.0 はい
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい
 

CsvFs によって、圧縮されたファイルのリダイレクトされた IO が実行されます。

必要条件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー lzexpand.h (Windows.h を含む)
Library Lz32.lib
[DLL] Lz32.dll

関連項目

ファイルの圧縮と圧縮解除

File Management 関数

LZInit

LZOpenFile

LZSeek