Bagikan melalui


Fungsi RtlDecompressFragmentEx (ntifs.h)

Fungsi RtlDecompressFragmentEx digunakan untuk mendekompresi bagian dari buffer terkompresi (yaitu, buffer "fragmen"), menggunakan beberapa prosesor jika memungkinkan.

Sintaks

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
);

Parameter

[in] CompressionFormat

Bitmask menentukan format kompresi buffer terkompresi. Parameter ini harus diatur ke COMPRESSION_FORMAT_LZNT1. Arti dari ini dan nilai format kompresi terkait lainnya adalah sebagai berikut:

Nilai Makna
COMPRESSION_FORMAT_NONE Tidak didukung oleh fungsi ini.
COMPRESSION_FORMAT_DEFAULT Tidak didukung oleh fungsi ini.
COMPRESSION_FORMAT_LZNT1 Menentukan bahwa pemadatan harus dilakukan. Nilai ini diperlukan.

[out] UncompressedFragment

Penunjuk ke buffer yang dialokasikan penelepon (dialokasikan dari kumpulan halaman atau non-halaman) menerima data yang didekompresi dari CompressedBuffer. Parameter ini diperlukan dan tidak boleh NULL.

[in] UncompressedFragmentSize

Ukuran, dalam byte, dari buffer UncompressedFragment .

[in] CompressedBuffer

Penunjuk ke buffer yang berisi data untuk didekompresi. Parameter ini diperlukan dan tidak boleh NULL.

[in] CompressedBufferSize

Ukuran, dalam byte, dari buffer CompressedBuffer .

[in] FragmentOffset

Offset berbasis nol, dalam byte, tempat fragmen yang tidak dikompresi sedang diekstrak. Nilai offset ini adalah posisi dalam buffer asli yang tidak dikompresi.

[in] UncompressedChunkSize

Ukuran, dalam byte, dari setiap gugus dalam buffer kompresi. Nilai yang valid adalah 512, 1024, 2048 dan 4096.

[out] FinalUncompressedSize

Penunjuk ke variabel yang dialokasikan pemanggil yang menerima ukuran, dalam byte, dari data yang didekompresi yang disimpan di UncompressedFragment. Parameter ini diperlukan dan tidak boleh NULL.

[in] WorkSpace

Penunjuk ke buffer ruang kerja yang dialokasikan penelepon yang digunakan oleh fungsi RtlDecompressFragmentEx selama dekompresi. Gunakan fungsi RtlGetCompressionWorkSpaceSize untuk menentukan ukuran buffer ruang kerja yang benar.

Nilai kembali

RtlDecompressFragmentEx mengembalikan kode NTSTATUS yang sesuai, seperti salah satu hal berikut ini:

Menampilkan kode Deskripsi
STATUS_SUCCESS Buffer CompressedBuffer berhasil didekompresi menjadi UncompressedFragment.
STATUS_INVALID_PARAMETER Format kompresi yang tidak valid ditentukan melalui parameter CompressionFormat . Jika CompressionFormat COMPRESSION_FORMAT_NONE atau COMPRESSION_FORMAT_DEFAULT (tetapi tidak keduanya), nilai ini dikembalikan.
STATUS_UNSUPPORTED_COMPRESSION Format kompresi yang tidak valid ditentukan melalui parameter CompressionFormat . Jika CompressionFormat bukan salah satu dari berikut ini, STATUS_UNSUPPORTED_COMPRESSION dikembalikan: COMPRESSION_FORMAT_LZNT1
STATUS_BAD_COMPRESSION_BUFFER UncompressedFragment tidak cukup besar untuk berisi data yang tidak dikompresi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10
Target Platform Universal
Header ntifs.h (termasuk Fltkernel.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Lihat juga

FILE_COMPRESSION_INFORMATION

RtlCompressBuffer

RtlDecompressBuffer

RtlDecompressBufferEx

RtlDecompressBufferEx2

RtlDecompressFragment