共用方式為


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

UncompressedFragment 緩衝區的大小,以位元組為單位。

[in] CompressedBuffer

緩衝區的指標,其中包含要解壓縮的數據。 這個參數是必要的,而且不能是 NULL。

[in] CompressedBufferSize

CompressedBuffer 緩衝區的大小,以位元組為單位。

[in] FragmentOffset

以位元組為單位的以零起始的位移,其中未壓縮的片段正在擷取。 這個位移值是原始未壓縮緩衝區內的位置。

[in] UncompressedChunkSize

壓縮緩衝區內每個區塊的大小,以位元組為單位。 有效值為 512、1024、2048 和 4096。

[out] FinalUncompressedSize

呼叫端配置的變數指標,接收儲存在 uncompressedFragment 解壓縮數據的大小,以位元組為單位。 這個參數是必要的,而且不能是 NULL。

[in] WorkSpace

解壓縮期間,RtlDecompressFragmentEx 函式所使用的呼叫端配置工作空間緩衝區指標。 使用 RtlGetCompressionWorkSpaceSize 函式來判斷正確的工作空間緩衝區大小。

傳回值

RtlDecompressFragmentEx 會傳回適當的 NTSTATUS 程式代碼,例如下列其中一項:

傳回碼 描述
STATUS_SUCCESS CompressedBuffer 緩衝區已成功解壓縮至 UncompressedFragment
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 UncompressedFragment 不夠大,無法包含未壓縮的數據。

要求

要求 價值
最低支援的用戶端 Windows 10
目標平臺 普遍
標頭 ntifs.h (include Fltkernel.h, Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

FILE_COMPRESSION_INFORMATION

RtlCompressBuffer

RtlDecompressBuffer

RtlDecompressBufferEx

RtlDecompressBufferEx2

RtlDecompressFragment