次の方法で共有


LZCopy 関数 (lzexpand.h)

ソース ファイルをコピー先ファイルにコピーします。 ソース ファイルが Lempel-Ziv アルゴリズムによって圧縮されている場合、この関数は圧縮解除されたコピー先ファイルを作成します。 ソース ファイルが圧縮されていない場合、この関数は元のファイルを複製します。

構文

LONG LZCopy(
  [in] INT hfSource,
  [in] INT hfDest
);

パラメーター

[in] hfSource

ソース ファイルへのハンドル。

[in] hfDest

コピー先ファイルのハンドル。

戻り値

関数が成功した場合、戻り値はコピー先ファイルのサイズ (バイト単位) を指定します。

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

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

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

この関数の拡張エラー情報はありません。 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

関連項目

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

File Management 関数

LZInit

LZOpenFile