RtlDecompressFragmentEx 関数は、可能な限り複数のプロセッサを使用して、圧縮バッファー (つまり、バッファー "フラグメント") の一部を展開するために使用されます。
構文
NT_RTL_COMPRESS_API NTSTATUS RtlDecompressFragmentEx(
[in] USHORT CompressionFormat,
[out] PUCHAR UncompressedFragment,
[in] ULONG UncompressedFragmentSize,
[in] PUCHAR CompressedBuffer,
[in] ULONG CompressedBufferSize,
[in] ULONG FragmentOffset,
[in] ULONG UncompressedChunkSize,
[out] PULONG FinalUncompressedSize,
[in] PVOID WorkSpace
);
パラメーター
[in] CompressionFormat
圧縮バッファーの圧縮形式を指定するビットマスク。 このパラメーターは、COMPRESSION_FORMAT_LZNT1に設定する必要があります。 これと関連する圧縮形式の値の意味は次のとおりです。
価値 | 意味 |
---|---|
COMPRESSION_FORMAT_NONE | この関数ではサポートされていません。 |
COMPRESSION_FORMAT_DEFAULT | この関数ではサポートされていません。 |
COMPRESSION_FORMAT_LZNT1 | 圧縮を実行することを指定します。 この値は必須です。 |
[out] UncompressedFragment
CompressedBuffer から圧縮解除されたデータを受信する呼び出し元によって割り当てられたバッファー (ページプールまたは非ページ プールから割り当てられる) へのポインター。 このパラメーターは必須であり、NULL にすることはできません。
[in] UncompressedFragmentSize
非圧縮Fragment バッファーのサイズ (バイト単位)。
[in] CompressedBuffer
展開するデータを含むバッファーへのポインター。 このパラメーターは必須であり、NULL にすることはできません。
[in] CompressedBufferSize
CompressedBuffer バッファーのサイズ (バイト単位)。
[in] FragmentOffset
非圧縮フラグメントの抽出元の 0 から始まるオフセット (バイト単位)。 このオフセット値は、元の圧縮されていないバッファー内の位置です。
[in] UncompressedChunkSize
圧縮バッファー内の各チャンクのサイズ (バイト単位)。 有効な値は、512、1024、2048、4096 です。
[out] FinalUncompressedSize
DecompressedFragmentに格納されている圧縮解除されたデータのサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは必須であり、NULL にすることはできません。
[in] WorkSpace
展開時に RtlDecompressFragmentEx 関数によって使用される呼び出し元によって割り当てられた作業領域バッファーへのポインター。 RtlGetCompressionWorkSpaceSize関数使用して、正しい作業空間バッファー サイズを決定します。
戻り値
RtlDecompressFragmentEx は、次のいずれかの適切な NTSTATUS コードを返します。
リターン コード | 形容 |
---|---|
STATUS_SUCCESS | CompressedBuffer バッファーは、CompressedFragmentに正常に展開されました。 |
STATUS_INVALID_PARAMETER | CompressionFormat パラメーターを使用して、無効な圧縮形式が指定されました。 CompressionFormat COMPRESSION_FORMAT_NONEまたはCOMPRESSION_FORMAT_DEFAULT (両方ではない) の場合は、この値が返されます。 |
STATUS_UNSUPPORTED_COMPRESSION | CompressionFormat パラメーターを使用して、無効な圧縮形式が指定されました。 CompressionFormat が次のいずれかでない場合は、STATUS_UNSUPPORTED_COMPRESSIONが返されます: COMPRESSION_FORMAT_LZNT1 |
STATUS_BAD_COMPRESSION_BUFFER | 圧縮されていないデータを格納するのに十分な大きさではない。 |
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 10 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntifs.h (Fltkernel.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
関連項目
RtlCompressBufferの
RtlDecompressBufferをする
RtlDecompressBufferExをする
RtlDecompressBufferEx2をする
RtlDecompressFragmentをする