LZCopy 関数 (lzexpand.h)
ソース ファイルをコピー先ファイルにコピーします。 ソース ファイルが Lempel-Ziv アルゴリズムによって圧縮されている場合、この関数は圧縮解除されたコピー先ファイルを作成します。 ソース ファイルが圧縮されていない場合、この関数は元のファイルを複製します。
構文
LONG LZCopy(
[in] INT hfSource,
[in] INT hfDest
);
パラメーター
[in] hfSource
ソース ファイルへのハンドル。
[in] hfDest
コピー先ファイルのハンドル。
戻り値
関数が成功した場合、戻り値はコピー先ファイルのサイズ (バイト単位) を指定します。
関数が失敗した場合、戻り値はLZERROR_* コードです。 これらのコードの値は 0 未満です。 LZCopy は SetLastError も SetLastErrorEx も呼び出さないことを注意してください。したがって、そのエラーはスレッドの最後のエラー コードには影響しません。
エラー時に LZCopy が返すことができるエラー コードの一覧を次に示します。
リターン コード | 説明 |
---|---|
|
ソース ファイルを識別するハンドルが無効です。 ファイルを読み取ることができません。 |
|
宛先ファイルを識別するハンドルが無効です。 ファイルを書き込むことができません。 |
|
開いている圧縮ファイルの最大数を超えているか、ローカル メモリを割り当てることができません。 |
|
LZ ファイル ハンドルをロックダウンすることはできません。 |
|
ソース ファイル形式が無効です。 |
この関数の拡張エラー情報はありません。 GetLastError を呼び出さないでください。
解説
LZInit 関数または LZOpenFile 関数を呼び出して、ソース ファイルとコピー先ファイルを識別するハンドルを取得する必要があります。
関数が成功すると、 hfDest パラメーターで識別されるファイルは常に圧縮解除されます。
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 |