FSCTL_FILE_LEVEL_TRIM IOCTL(winioctl.h)
스토리지 시스템에서 저장할 필요가 없는 지정된 파일 내의 범위를 나타냅니다.
이 작업을 수행하려면 다음 매개 변수를 사용하여 DeviceIoControl 함수를 호출합니다.
BOOL DeviceIoControl(
(HANDLE) hDevice, // Handle to a file
FSCTL_FILE_LEVEL_TRIM, // dwIoControlCode
(LPVOID) lpInBuffer, // Input buffer
(DWORD) nInBufferSize, // Size of input buffer
(LPVOID) lpOutBuffer, // Output buffer
(DWORD) nOutBufferSize, // Size of output buffer
(LPDWORD) lpBytesReturned, // Number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
설명
FSCTL_FILE_LEVEL_TRIM 제어 코드는 기본 스토리지 시스템에 대한 힌트입니다. 바이트 범위가 잘린 경우 나중에 해당 범위를 다시 읽는 경우 반환된 데이터는 트리밍 작업 전의 원래 데이터(모든 0(0x00 바이트), 모든 데이터(0xff 바이트) 또는 이들 조합일 수 있습니다. 트리밍 작업이 기본 스토리지 시스템에 전달되기 전에 입력 범위가 페이지 경계에 맞게 감소됩니다(32비트 및 x64 기반 버전의 Windows에서는 4,096바이트, Windows 버전에서는 8,192바이트Itanium-Based).
lpInBuffer 매개 변수가 가리키는 입력 버퍼의 FILE_LEVEL_TRIM 구조를 따르는 FILE_LEVEL_TRIM_RANGE 항목을 처리하는 동안 오류가 발생하면 처리가 중지되고 lpOutBuffer 매개 변수가 가리키는 FILE_LEVEL_TRIM_OUTPUT 구조체의 NumRangesProcessed 멤버는 성공적으로 처리된 범위를 나타냅니다. NumRangesProcessed와 FILE_LEVEL_TRIM 구조체의 NumRanges 멤버 사이의 범위는 처리되지 않았습니다.
FSCTL_FILE_LEVEL_TRIM 제어 코드는 암호화되거나 압축된 파일(GetFileAttributes는 FILE_ATTRIBUTE_ENCRYPTED 또는 FILE_ATTRIBUTE_COMPRESSED 반환)과 호환되지 않으며 ERROR_INVALID_PARAMETER 실패합니다. 스파스 파일( FILE_ATTRIBUTE_SPARSE_FILE 표시)은 지원되지만 할당된 범위만 트리밍할 수 있습니다. BitLocker 기술로 암호화된 볼륨의 파일은 지원되지만 개별적으로 암호화된 파일은 지원되지 않습니다.
FSCTL_FILE_LEVEL_TRIM 제어 코드는 트랜잭션에 참여하지 않습니다. 트랜잭션 중에 FSCTL_FILE_LEVEL_TRIM 제어 코드가 처리되고 트랜잭션이 중단되면 트리밍이 트랜잭션과 함께 롤백되지 않습니다.
성공적으로 트리밍된 범위는 파일 시스템 캐시에서 제거됩니다.
트리밍된 범위는 유효한 VDL(데이터 길이)을 넘어 EOF(파일 끝)까지일 수 있습니다.
Windows 8 및 Windows Server 2012 이 코드는 다음 기술에서 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | Yes |
SMB 3.0 TFO(투명 장애 조치(failover)) | Yes |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | Yes |
CsvFS(클러스터 공유 볼륨 파일 시스템) | Yes |
ReFS(Resilient File System) | No |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱만 해당] |
머리글 | winioctl.h(Windows.h 포함) |