FSCTL_GET_VOLUME_BITMAP IOCTL(winioctl.h)
볼륨에서 점유된 클러스터 및 사용 가능한 클러스터의 비트맵을 검색합니다.
이 작업을 수행하려면 다음 매개 변수를 사용하여 DeviceIoControl 함수를 호출합니다.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to volume
FSCTL_GET_VOLUME_BITMAP, // 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_GET_VOLUME_BITMAP 제어 코드는 요청된 시작 LCN에서 볼륨의 마지막 클러스터까지 파일 시스템의 각 클러스터의 할당 상태를 설명하는 데이터 구조를 검색합니다. 비트맵은 한 비트를 사용하여 각 클러스터를 나타냅니다.
- 값 1은 클러스터가 할당되었음을 나타냅니다(사용 중).
- 값 0은 클러스터가 할당되지 않음을 나타냅니다(무료).
비트맵은 특정 시점을 나타내며 볼륨에 쓰기 작업이 있는 경우 읽는 즉시 올바르지 않을 수 있습니다. 따라서 클러스터가 할당되지 않았음을 나타내는 최근 비트맵에도 불구하고 클러스터를 할당된 클러스터로 이동하려고 시도할 수 있습니다. 이 가능성에 대비하여 FSCTL_MOVE_FILE 제어 코드와 함께 DeviceIoControl 함수를 사용하는 프로그램을 준비해야 합니다.
여기서 사용되는 핸들은 볼륨 핸들이어야 하며 액세스 권한이 있는 상태에서 열렸어야 합니다. 관리자만 볼륨 핸들을 열 수 있습니다.
입력 버퍼의 시작 LCN은 비트맵이 계산되기 전에 반올림될 수 있습니다. 반올림 제한은 파일 시스템에 따라 다릅니다.
이 작업에 겹치는 I/O의 의미는 DeviceIoControl 항목의 설명 섹션을 참조하세요.
이 작업은 페이지 경계에서 반환하는 비트맵을 정렬합니다.
Windows Server 2003 및 Windows XP: 이 작업은 바이트 경계에서 반환하는 비트맵을 정렬합니다.
Windows 8 및 Windows Server 2012 이 코드는 다음 기술에서 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | No |
SMB 3.0 TFO(투명 장애 조치(failover)) | No |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | No |
CsvFS(클러스터 공유 볼륨 파일 시스템) | Yes |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
머리글 | winioctl.h(Windows.h 포함) |