Função RtlDecompressBuffer (ntifs.h)
A função RtlDecompressBuffer descompacta um buffer compactado inteiro.
Sintaxe
NT_RTL_COMPRESS_API NTSTATUS RtlDecompressBuffer(
[in] USHORT CompressionFormat,
[out] PUCHAR UncompressedBuffer,
[in] ULONG UncompressedBufferSize,
[in] PUCHAR CompressedBuffer,
[in] ULONG CompressedBufferSize,
[out] PULONG FinalUncompressedSize
);
Parâmetros
[in] CompressionFormat
Uma máscara de bits que especifica o formato de compactação do buffer compactado. Esse parâmetro deve ser definido como COMPRESSION_FORMAT_LZNT1. O significado desse e de outros valores de formato de compactação relacionados são os seguintes.
Valor | Significado |
---|---|
COMPRESSION_FORMAT_NONE | Não há suporte para essa função. |
COMPRESSION_FORMAT_DEFAULT | Não há suporte para essa função. |
COMPRESSION_FORMAT_LZNT1 | A função executará a compactação LZ. |
COMPRESSION_FORMAT_XPRESS | A função executará a compactação Xpress. |
[out] UncompressedBuffer
Um ponteiro para um buffer alocado pelo chamador (alocado de um pool paginado ou não paginado) que recebe os dados descompactados do CompressedBuffer. Esse parâmetro é necessário e não pode ser NULL.
[in] UncompressedBufferSize
O tamanho, em bytes, do buffer UncompressedBuffer .
[in] CompressedBuffer
Um ponteiro para o buffer que contém os dados a serem descompactados. Esse parâmetro é necessário e não pode ser NULL.
[in] CompressedBufferSize
O tamanho, em bytes, do buffer CompressedBuffer .
[out] FinalUncompressedSize
Um ponteiro para uma variável alocada pelo chamador que recebe o tamanho, em bytes, dos dados descompactados armazenados em UncompressedBuffer. Esse parâmetro é necessário e não pode ser NULL.
Retornar valor
RtlDecompressBuffer retorna um erro apropriado status valor, como um dos seguintes.
Código de retorno | Descrição |
---|---|
STATUS_SUCCESS | O buffer CompressedBuffer foi descompactado com êxito. |
STATUS_INVALID_PARAMETER | Um formato de compactação inválido foi especificado por meio do parâmetro CompressionFormat . Se CompressionFormat for COMPRESSION_FORMAT_NONE ou COMPRESSION_FORMAT_DEFAULT (mas não ambos), esse valor será retornado. |
STATUS_UNSUPPORTED_COMPRESSION | Um formato de compactação inválido foi especificado por meio do parâmetro CompressionFormat . Se CompressionFormat não for um dos seguintes, STATUS_UNSUPPORTED_COMPRESSION será retornado: COMPRESSION_FORMAT_LZNT1, COMPRESSION_FORMAT_XPRESS |
STATUS_BAD_COMPRESSION_BUFFER | UncompressedBuffer não é grande o suficiente para conter os dados descompactados. |
Comentários
A função RtlDecompressBuffer usa como entrada um buffer compactado inteiro e produz seu equivalente descompactado, desde que os dados descompactados se ajustem ao buffer de destino especificado.
Para descompactar apenas uma parte de um buffer compactado (ou seja, um "fragmento" do buffer), use a função RtlDecompressFragment .
Para compactar um buffer descompactado, use a função RtlCompressBuffer .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Fltkernel.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |