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 |