RtlDecompressBuffer 함수(ntifs.h)
RtlDecompressBuffer 함수는 압축된 버퍼 전체를 압축 해제합니다.
구문
NT_RTL_COMPRESS_API NTSTATUS RtlDecompressBuffer(
[in] USHORT CompressionFormat,
[out] PUCHAR UncompressedBuffer,
[in] ULONG UncompressedBufferSize,
[in] PUCHAR CompressedBuffer,
[in] ULONG CompressedBufferSize,
[out] PULONG FinalUncompressedSize
);
매개 변수
[in] CompressionFormat
압축된 버퍼의 압축 형식을 지정하는 비트 마스크입니다. 이 매개 변수는 COMPRESSION_FORMAT_LZNT1 설정해야 합니다. 이 값과 기타 관련 압축 형식 값의 의미는 다음과 같습니다.
값 | 의미 |
---|---|
COMPRESSION_FORMAT_NONE | 이 함수에서 지원되지 않습니다. |
COMPRESSION_FORMAT_DEFAULT | 이 함수에서 지원되지 않습니다. |
COMPRESSION_FORMAT_LZNT1 | 함수는 LZ 압축을 수행합니다. |
COMPRESSION_FORMAT_XPRESS | 함수는 Xpress 압축을 수행합니다. |
[out] UncompressedBuffer
CompressedBuffer에서 압축 해제된 데이터를 수신하는 호출자 할당 버퍼(페이징된 풀 또는 페이징되지 않은 풀에서 할당됨)에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in] UncompressedBufferSize
압축되지 않은 버퍼의 크기(바이트)입니다.
[in] CompressedBuffer
압축을 풀 데이터를 포함하는 버퍼에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in] CompressedBufferSize
CompressedBuffer 버퍼의 크기(바이트)입니다.
[out] FinalUncompressedSize
UncompressedBuffer에 저장된 압축 해제된 데이터의 크기(바이트)를 수신하는 호출자 할당 변수에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
반환 값
RtlDecompressBuffer는 다음 중 하나와 같은 적절한 오류 상태 값을 반환합니다.
반환 코드 | 설명 |
---|---|
STATUS_SUCCESS | CompressedBuffer 버퍼가 압축 해제되었습니다. |
STATUS_INVALID_PARAMETER | CompressionFormat 매개 변수를 통해 잘못된 압축 형식을 지정했습니다. CompressionFormat이 COMPRESSION_FORMAT_NONE 또는 COMPRESSION_FORMAT_DEFAULT(둘 다 아님)인 경우 이 값이 반환됩니다. |
STATUS_UNSUPPORTED_COMPRESSION | CompressionFormat 매개 변수를 통해 잘못된 압축 형식을 지정했습니다. CompressionFormat이 다음 중 하나가 아닌 경우 STATUS_UNSUPPORTED_COMPRESSION 반환됩니다. COMPRESSION_FORMAT_LZNT1, COMPRESSION_FORMAT_XPRESS |
STATUS_BAD_COMPRESSION_BUFFER | uncompressedBuffer 는 압축되지 않은 데이터를 포함할 만큼 크지 않습니다. |
설명
RtlDecompressBuffer 함수는 전체 압축 버퍼를 입력으로 사용하고 압축되지 않은 데이터가 지정된 대상 버퍼 내에 맞는 경우 압축 해제된 동일한 값을 생성합니다.
압축된 버퍼의 일부(즉, 버퍼의 "조각")만 압축 해제하려면 RtlDecompressFragment 함수를 사용합니다.
압축되지 않은 버퍼를 압축하려면 RtlCompressBuffer 함수를 사용합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP |
대상 플랫폼 | 유니버설 |
헤더 | ntifs.h(Fltkernel.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |