次の方法で共有


RtlDecompressFragmentEx 関数 (ntifs.h)

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

関連項目

FILE_COMPRESSION_INFORMATION

RtlCompressBuffer

RtlDecompressBufferする

RtlDecompressBufferExする

RtlDecompressBufferEx2する

RtlDecompressFragmentする