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


Функция DetachVirtualDisk (virtdisk.h)

Отсоединяет виртуальный жесткий диск (VHD), файл CD или DVD-образ (ISO), найдя соответствующего поставщика виртуальных дисков для выполнения операции.

Синтаксис

DWORD DetachVirtualDisk(
  [in] HANDLE                   VirtualDiskHandle,
  [in] DETACH_VIRTUAL_DISK_FLAG Flags,
  [in] ULONG                    ProviderSpecificFlags
);

Параметры

[in] VirtualDiskHandle

Дескриптор открытого виртуального диска, который должен быть открыт с помощью флага VIRTUAL_DISK_ACCESS_DETACH , заданного в параметре VirtualDiskAccessMask для функции OpenVirtualDisk . Сведения об открытии виртуального диска см. в разделе Функция OpenVirtualDisk .

[in] Flags

Допустимое сочетание значений перечисления DETACH_VIRTUAL_DISK_FLAG .

[in] ProviderSpecificFlags

Флаги, относящиеся к типу отсоединяемого виртуального диска. Может быть равно нулю, если они не требуются.

Возвращаемое значение

Состояние запроса.

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

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

Комментарии

Если функция DetachVirtualDisk завершается сбоем со значением кода ошибки ERROR_INVALID_PARAMETER, причина может быть вызвана любым из следующих условий:

  • Параметр VirtualDiskHandle не является допустимым дескриптором, созданным функцией OpenVirtualDisk .
  • Параметру Flags присваивается значение, отличное от DETACH_VIRTUAL_DISK_FLAG_NONE (0).
Том узла, содержащий файл образа виртуального диска, не может быть сжат или зашифрован EFS.

Все остальные открытые дескрипторы виртуального диска должны быть закрыты перед выполнением функции DetachVirtualDisk .

Если виртуальный диск подключен, а другой дескриптор, который использовался для его подключения, был закрыт, это связано с тем, что был указан флаг ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME . В этом случае функция DetachVirtualDisk может быть выполнена успешно, но виртуальный жесткий диск останется подключенным. Если ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME не указан, виртуальный диск будет автоматически отсоединен при закрытии последнего открытого дескриптора.

Эта функция завершится сбоем, если поставщик не найден, если файл образа недопустим, если образ не подключен или если вызывающий объект не имеет прав доступа SE_MANAGE_VOLUME_PRIVILEGE в операционной системе Windows Server. Дополнительные сведения о безопасности файлов см. в разделе Безопасность файлов и права доступа.

Файлы образов КОМПАКТ-дисков и DVD-дисков (ISO) не поддерживаются до Windows 8 и Windows Server 2012.

Требования

Требование Значение
Минимальная версия клиента Windows 7
Минимальная версия сервера Windows Server 2008 R2
Целевая платформа Windows
Header virtdisk.h
Библиотека VirtDisk.lib
DLL VirtDisk.dll

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

Сведения о виртуальном жестком диске

Справочник по VHD