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
DecompressedBufferに格納されている圧縮解除されたデータのサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは必須であり、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 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntifs.h (Fltkernel.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
RtlCompressBufferの
RtlDecompressBufferExをする
RtlDecompressBufferEx2をする
RtlDecompressFragmentをする
RtlDecompressFragmentExの