Поделиться через


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.

Дескриптор hDevice, передаваемый в DeviceIoControl, должен быть дескриптором тома, открытым для прямого доступа. Чтобы получить дескриптор тома, вызовите CreateFile с параметром lpFileName в строке следующей формы:

\\.\X:

где X — это буква секционирования жесткого диска, диск floppy или диск CD-ROM. Приложение также должно указать флаги FILE_SHARE_READ и FILE_SHARE_WRITE в параметре dwShareModeCreateFile.

Если указанный том является системным томом или содержит файл страницы, операция завершается ошибкой.

Если указанный том заблокирован другим процессом, операция завершается ошибкой. Чтобы предотвратить блокировку тома другим процессом, заблокируйте его сразу после открытия.

Отключенный том имеет следующие свойства:

  • Открытые файлы отсутствуют.
  • Операционная система обнаруживает том.
Операционная система пытается подключить отключенный том сразу после попытки получить к нему доступ. Например, вызов GetLogicalDrives активирует операционную систему для подключения отключенных томов.

Отключение тома полезно, если тому нужно исчезнуть в течение некоторого времени. Например, приложение, которое изменяет файловую систему тома из файловой системы FAT в файловую систему NTFS, может использовать следующую процедуру.

Изменение файловой системы тома

  1. Откройте том.
  2. Блокировка тома.
  3. Форматирование тома.
  4. Отключение тома.
  5. Разблокируйте том.
  6. Закройте дескриптор тома.
Операция отключения удаляет том из осведомленности о файловой системе FAT. При подключении тома операционная система отображается в виде тома файловой системы NTFS.

В Windows 8 и Windows Server 2012 этот код поддерживается следующими технологиями.

Технологии Поддержанный
Протокол SMB 3.0 Нет
Отработка отказа SMB 3.0 (TFO) Нет
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) См. комментарий
 

В CSV-файлах узел, на котором выдается отключение, увидит обычную последовательность отключения. На всех остальных узлах FS отменит все открытые файлы.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
заголовка winioctl.h (включая Windows.h)

См. также

CreateFile

DeviceIoControl

ExitThread

FSCTL_LOCK_VOLUME

GetLogicalDrives

коды управления томами