RtlDecompressFragmentEx 함수(ntifs.h)
RtlDecompressFragmentEx 함수는 가능한 경우 여러 프로세서를 사용하여 압축된 버퍼(즉, 버퍼 "조각")의 일부를 압축 해제하는 데 사용됩니다.
구문
NT_RTL_COMPRESS_API NTSTATUS RtlDecompressFragmentEx(
[in] USHORT CompressionFormat,
[out] PUCHAR UncompressedFragment,
[in] ULONG UncompressedFragmentSize,
[in] PUCHAR CompressedBuffer,
[in] ULONG CompressedBufferSize,
[in] ULONG FragmentOffset,
[in] ULONG UncompressedChunkSize,
[out] PULONG FinalUncompressedSize,
[in] PVOID WorkSpace
);
매개 변수
[in] CompressionFormat
압축된 버퍼의 압축 형식을 지정하는 비트 마스크입니다. 이 매개 변수는 COMPRESSION_FORMAT_LZNT1 설정해야 합니다. 이 및 기타 관련 압축 형식 값의 의미는 다음과 같습니다.
값 | 의미 |
---|---|
COMPRESSION_FORMAT_NONE | 이 함수에서 지원되지 않습니다. |
COMPRESSION_FORMAT_DEFAULT | 이 함수에서 지원되지 않습니다. |
COMPRESSION_FORMAT_LZNT1 | 압축을 수행되도록 지정합니다. 이 값은 필수입니다. |
[out] UncompressedFragment
CompressedBuffer에서 압축 해제된 데이터를 수신하는 호출자 할당 버퍼(페이징되거나 페이징되지 않은 풀에서 할당됨)에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in] UncompressedFragmentSize
UncompressedFragment 버퍼의 크기(바이트)입니다.
[in] CompressedBuffer
압축을 풀 데이터를 포함하는 버퍼에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in] CompressedBufferSize
CompressedBuffer 버퍼의 크기(바이트)입니다.
[in] FragmentOffset
압축되지 않은 조각이 추출되는 0부터 시작하는 오프셋(바이트)입니다. 이 오프셋 값은 원래 압축되지 않은 버퍼 내의 위치입니다.
[in] UncompressedChunkSize
압축 버퍼 내의 각 청크의 크기(바이트)입니다. 유효한 값은 512, 1024, 2048 및 4096입니다.
[out] FinalUncompressedSize
UncompressedFragment에 저장된 압축 해제된 데이터의 크기(바이트)를 수신하는 호출자 할당 변수에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in] WorkSpace
압축 해제 중에 RtlDecompressFragmentEx 함수에서 사용하는 호출자가 할당한 작업 공간 버퍼에 대한 포인터입니다. RtlGetCompressionWorkSpaceSize 함수를 사용하여 올바른 작업 공간 버퍼 크기를 확인합니다.
반환 값
RtlDecompressFragmentEx 는 다음 중 하나와 같은 적절한 NTSTATUS 코드를 반환합니다.
반환 코드 | 설명 |
---|---|
STATUS_SUCCESS | CompressedBuffer 버퍼가 압축 해제됨Fragment로 압축 해제되었습니다. |
STATUS_INVALID_PARAMETER | CompressionFormat 매개 변수를 통해 잘못된 압축 형식을 지정했습니다. CompressionFormat이 COMPRESSION_FORMAT_NONE 또는 COMPRESSION_FORMAT_DEFAULT(둘 다 아님)인 경우 이 값이 반환됩니다. |
STATUS_UNSUPPORTED_COMPRESSION | CompressionFormat 매개 변수를 통해 잘못된 압축 형식을 지정했습니다. CompressionFormat이 다음 중 하나가 아닌 경우 STATUS_UNSUPPORTED_COMPRESSION 반환됩니다. COMPRESSION_FORMAT_LZNT1 |
STATUS_BAD_COMPRESSION_BUFFER | 압축되지 않은Fragment 는 압축되지 않은 데이터를 포함할 만큼 크지 않습니다. |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
대상 플랫폼 | 유니버설 |
헤더 | ntifs.h(Fltkernel.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |