FSCTL_DISMOUNT_VOLUME IOCTL(winioctl.h)

볼륨이 현재 사용 중인지 여부에 관계없이 볼륨을 분리합니다. 자세한 내용은 주의 섹션을 참조하세요.

이 작업을 수행하려면 다음 매개 변수를 사용하여 DeviceIoControl 함수를 호출합니다.

C++
BOOL DeviceIoControl(
  (HANDLE) hDevice,            // handle to a volume
  (DWORD) FSCTL_DISMOUNT_VOLUME,   // dwIoControlCodeNULL,                        // lpInBuffer0,                           // nInBufferSizeNULL,                        // lpOutBuffer0,                           // nOutBufferSize(LPDWORD) lpBytesReturned,   // number of bytes returned
  (LPOVERLAPPED) lpOverlapped  // OVERLAPPED structure
);

설명

FSCTL_DISMOUNT_VOLUME 제어 코드는 다른 프로세스가 볼륨을 사용하고 있는지 여부에 관계없이 볼륨을 분리하려고 시도하며, 볼륨에 대한 잠금을 보유하지 않으면 해당 프로세스에 대해 예측할 수 없는 결과를 가져올 수 있습니다. 볼륨을 잠그는 방법에 대한 자세한 내용은 FSCTL_LOCK_VOLUME.

DeviceIoControl에 전달된 hDevice 핸들은 직접 액세스하기 위해 열린 볼륨에 대한 핸들이어야 합니다. 볼륨 핸들을 검색하려면 lpFileName 매개 변수가 다음 형식의 문자열로 설정된 CreateFile을 호출합니다.

\.\X:

여기서 X 는 하드 드라이브 파티션 문자, 플로피 디스크 드라이브 또는 CD-ROM 드라이브입니다. 또한 애플리케이션은 CreateFiledwShareMode 매개 변수에 FILE_SHARE_READ 및 FILE_SHARE_WRITE 플래그를 지정해야 합니다.

지정된 볼륨이 시스템 볼륨이거나 페이지 파일이 포함된 경우 작업이 실패합니다.

지정된 볼륨이 다른 프로세스에 의해 잠겨 있으면 작업이 실패합니다. 다른 프로세스가 볼륨을 잠그지 않도록 하려면 볼륨을 여는 즉시 잠급히세요.

분리된 볼륨에는 다음과 같은 속성이 있습니다.

  • 열려 있는 파일이 없습니다.
  • 운영 체제는 볼륨을 검색합니다.
운영 체제는 액세스하려고 시도하는 즉시 탑재되지 않은 볼륨을 탑재하려고 시도합니다. 예를 들어 GetLogicalDrives 를 호출하면 운영 체제가 탑재되지 않은 볼륨을 탑재하도록 트리거됩니다.

볼륨을 분리하는 것은 잠시 동안 볼륨이 사라져야 하는 경우에 유용합니다. 예를 들어 볼륨 파일 시스템을 FAT 파일 시스템에서 NTFS 파일 시스템으로 변경하는 애플리케이션은 다음 절차를 사용할 수 있습니다.

볼륨 파일 시스템을 변경하려면

  1. 볼륨을 엽니다.
  2. 볼륨을 잠급 수 있습니다.
  3. 볼륨의 서식을 지정합니다.
  4. 볼륨을 분리합니다.
  5. 볼륨 잠금을 해제합니다.
  6. 볼륨 핸들을 닫습니다.
분리 작업은 FAT 파일 시스템 인식에서 볼륨을 제거합니다. 운영 체제가 볼륨을 탑재하면 NTFS 파일 시스템 볼륨으로 표시됩니다.

Windows 8 및 Windows Server 2012 이 코드는 다음 기술에서 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 No
SMB 3.0 TFO(투명 장애 조치(failover)) No
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 No
CsvFS(클러스터 공유 볼륨 파일 시스템) 주석 참조
 

CsvFs에서 분리가 실행되는 노드에는 일반적인 분리 시퀀스가 표시됩니다. 다른 모든 노드에서 FS는 열려 있는 모든 파일을 무효화합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winioctl.h(Windows.h 포함)

추가 정보

CreateFile

DeviceIoControl

ExitThread

FSCTL_LOCK_VOLUME

GetLogicalDrives

볼륨 관리 제어 코드