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 — это буква раздела жесткого диска, дисковод гибких дисков или компакт-дисков. Приложение также должно указать флаги 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 Transparent Failover (TFO) Нет
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) См. комментарий
 

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winioctl.h (включая Windows.h)

См. также раздел

CreateFile

DeviceIoControl

ExitThread

FSCTL_LOCK_VOLUME

GetLogicalDrives

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