Funzione RtlDecompressBuffer (ntifs.h)
La funzione RtlDecompressBuffer decomprime un intero buffer compresso.
Sintassi
NT_RTL_COMPRESS_API NTSTATUS RtlDecompressBuffer(
[in] USHORT CompressionFormat,
[out] PUCHAR UncompressedBuffer,
[in] ULONG UncompressedBufferSize,
[in] PUCHAR CompressedBuffer,
[in] ULONG CompressedBufferSize,
[out] PULONG FinalUncompressedSize
);
Parametri
[in] CompressionFormat
Maschera di bit che specifica il formato di compressione del buffer compresso. Questo parametro deve essere impostato su COMPRESSION_FORMAT_LZNT1. Il significato di questo e di altri valori di formato di compressione correlati sono i seguenti.
Valore | Significato |
---|---|
COMPRESSION_FORMAT_NONE | Non supportato da questa funzione. |
COMPRESSION_FORMAT_DEFAULT | Non supportato da questa funzione. |
COMPRESSION_FORMAT_LZNT1 | La funzione eseguirà la compressione LZ. |
COMPRESSION_FORMAT_XPRESS | La funzione eseguirà la compressione Xpress. |
[out] UncompressedBuffer
Puntatore a un buffer allocato dal chiamante (allocato da un pool di paging o non di paging) che riceve i dati decompressi da CompressedBuffer. Questo parametro è obbligatorio e non può essere NULL.
[in] UncompressedBufferSize
Dimensione, in byte, del buffer UncompressedBuffer .
[in] CompressedBuffer
Puntatore al buffer contenente i dati da decomprimere. Questo parametro è obbligatorio e non può essere NULL.
[in] CompressedBufferSize
Dimensione, in byte, del buffer CompressedBuffer .
[out] FinalUncompressedSize
Puntatore a una variabile allocata dal chiamante che riceve le dimensioni, in byte, dei dati decompressi archiviati in UncompressedBuffer. Questo parametro è obbligatorio e non può essere NULL.
Valore restituito
RtlDecompressBuffer restituisce un valore di stato di errore appropriato, ad esempio uno dei seguenti.
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | Il buffer CompressedBuffer è stato decompresso correttamente. |
STATUS_INVALID_PARAMETER | È stato specificato un formato di compressione non valido tramite il parametro CompressionFormat . Se CompressionFormat è COMPRESSION_FORMAT_NONE o COMPRESSION_FORMAT_DEFAULT (ma non entrambi), viene restituito questo valore. |
STATUS_UNSUPPORTED_COMPRESSION | È stato specificato un formato di compressione non valido tramite il parametro CompressionFormat . Se CompressionFormat non è uno dei seguenti, viene restituito STATUS_UNSUPPORTED_COMPRESSION: COMPRESSION_FORMAT_LZNT1, COMPRESSION_FORMAT_XPRESS |
STATUS_BAD_COMPRESSION_BUFFER | UncompressedBuffer non è sufficientemente grande da contenere i dati non compressi. |
Commenti
La funzione RtlDecompressBuffer accetta come input un intero buffer compresso e produce l'equivalente decompresso a condizione che i dati non compressi si adattino al buffer di destinazione specificato.
Per decomprimere solo una parte di un buffer compresso ,ovvero un "frammento" del buffer, usare la funzione RtlDecompressFragment .
Per comprimere un buffer non compresso, usare la funzione RtlCompressBuffer .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP |
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Fltkernel.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |