Fungsi RtlDecompressBuffer (ntifs.h)

Fungsi RtlDecompressBuffer mendekompresi seluruh buffer terkompresi.

Sintaks

NT_RTL_COMPRESS_API NTSTATUS RtlDecompressBuffer(
  [in]  USHORT CompressionFormat,
  [out] PUCHAR UncompressedBuffer,
  [in]  ULONG  UncompressedBufferSize,
  [in]  PUCHAR CompressedBuffer,
  [in]  ULONG  CompressedBufferSize,
  [out] PULONG FinalUncompressedSize
);

Parameter

[in] CompressionFormat

Bitmask yang menentukan format pemadatan 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 Fungsi ini akan melakukan pemadatan LZ.
COMPRESSION_FORMAT_XPRESS Fungsi ini akan melakukan pemadatan Xpress.

[out] UncompressedBuffer

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

[in] UncompressedBufferSize

Ukuran, dalam byte, dari buffer UncompressedBuffer .

[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 .

[out] FinalUncompressedSize

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

Nilai kembali

RtlDecompressBuffer mengembalikan nilai status kesalahan yang sesuai, seperti salah satu hal berikut ini.

Menampilkan kode Deskripsi
STATUS_SUCCESS Buffer CompressedBuffer berhasil didekompresi.
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, COMPRESSION_FORMAT_XPRESS
STATUS_BAD_COMPRESSION_BUFFER UncompressedBuffer tidak cukup besar untuk memuat data yang tidak dikompresi.

Keterangan

Fungsi RtlDecompressBuffer mengambil sebagai input seluruh buffer terkompresi dan menghasilkan setara yang didekompresi asalkan data yang tidak dikompresi cocok dalam buffer tujuan yang ditentukan.

Untuk mendekompresi hanya sebagian buffer terkompresi (yaitu, "fragmen" buffer), gunakan fungsi RtlDecompressFragment .

Untuk memadatkan buffer yang tidak dikompresi, gunakan fungsi RtlCompressBuffer .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP
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

RtlDecompressBufferEx

RtlDecompressBufferEx2

RtlDecompressFragment

RtlDecompressFragmentEx