RtlDecompressBuffer 関数 (ntifs.h)

RtlDecompressBuffer 関数は、圧縮バッファー全体を圧縮解除します。

構文

NT_RTL_COMPRESS_API NTSTATUS RtlDecompressBuffer(
  [in]  USHORT CompressionFormat,
  [out] PUCHAR UncompressedBuffer,
  [in]  ULONG  UncompressedBufferSize,
  [in]  PUCHAR CompressedBuffer,
  [in]  ULONG  CompressedBufferSize,
  [out] PULONG FinalUncompressedSize
);

パラメーター

[in] CompressionFormat

圧縮バッファーの圧縮形式を指定するビットマスク。 このパラメーターは、COMPRESSION_FORMAT_LZNT1に設定する必要があります。 このおよび他の関連する圧縮形式の値の意味は次のとおりです。

意味
COMPRESSION_FORMAT_NONE この関数ではサポートされていません。
COMPRESSION_FORMAT_DEFAULT この関数ではサポートされていません。
COMPRESSION_FORMAT_LZNT1 関数は LZ 圧縮を実行します。
COMPRESSION_FORMAT_XPRESS 関数は Xpress 圧縮を実行します。

[out] UncompressedBuffer

圧縮解除されたデータを CompressedBuffer から受け取る呼び出し元によって割り当てられたバッファー (ページプールまたは非ページ プールから割り当てられる) へのポインター。 このパラメーターは必須であり、 NULL にすることはできません。

[in] UncompressedBufferSize

非圧縮バッファー バッファーのサイズ (バイト単位)。

[in] CompressedBuffer

圧縮解除するデータを含むバッファーへのポインター。 このパラメーターは必須であり、 NULL にすることはできません。

[in] CompressedBufferSize

CompressedBuffer バッファーのサイズ (バイト単位)。

[out] FinalUncompressedSize

CompressedBuffer に格納されている圧縮解除されたデータのサイズ (バイト単位) を受け取る呼び出し元割り当て変数へのポインター。 このパラメーターは必須であり、 NULL にすることはできません。

戻り値

RtlDecompressBuffer は、次のような適切なエラー状態値を返します。

リターン コード 説明
STATUS_SUCCESS CompressedBuffer バッファーが正常に展開されました。
STATUS_INVALID_PARAMETER CompressionFormat パラメーターを使用して、無効な圧縮形式が指定されました。 CompressionFormat がCOMPRESSION_FORMAT_NONEまたはCOMPRESSION_FORMAT_DEFAULT (両方ではない) の場合は、この値が返されます。
STATUS_UNSUPPORTED_COMPRESSION CompressionFormat パラメーターを使用して、無効な圧縮形式が指定されました。 CompressionFormat が次のいずれかでない場合は、STATUS_UNSUPPORTED_COMPRESSIONが返されます: COMPRESSION_FORMAT_LZNT1、COMPRESSION_FORMAT_XPRESS
STATUS_BAD_COMPRESSION_BUFFER 圧縮されていないデータ を格納するのに十分な大きさではありません。

注釈

RtlDecompressBuffer 関数は、圧縮バッファー全体を入力として受け取り、圧縮されていないデータが指定されたコピー先バッファー内に収まる場合、圧縮解除された同等のデータを生成します。

圧縮バッファーの一部 (つまり、バッファーの "フラグメント") のみを圧縮解除するには、 RtlDecompressFragment 関数を使用します。

圧縮されていないバッファーを圧縮するには、 RtlCompressBuffer 関数を使用します。

要件

要件
サポートされている最小のクライアント Windows XP
対象プラットフォーム ユニバーサル
Header ntifs.h (Fltkernel.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

FILE_COMPRESSION_INFORMATION

RtlCompressBuffer

RtlDecompressBufferEx

RtlDecompressBufferEx2

RtlDecompressFragment

RtlDecompressFragmentEx