다음을 통해 공유


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 포함)

추가 정보