DetachVirtualDisk-Funktion (virtdisk.h)

Trennt eine virtuelle Festplatte (VHD) oder eine CD- oder DVD-Imagedatei (ISO), indem sie einen geeigneten anbieter für virtuelle Datenträger für die Ausführung des Vorgangs ausfindig machen.

Syntax

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

Parameter

[in] VirtualDiskHandle

Ein Handle für einen geöffneten virtuellen Datenträger, der mit dem VIRTUAL_DISK_ACCESS_DETACH-Flag geöffnet worden sein muss, das im VirtualDiskAccessMask-Parameter auf die OpenVirtualDisk-Funktion festgelegt ist . Informationen zum Öffnen eines virtuellen Datenträgers finden Sie in der OpenVirtualDisk-Funktion .

[in] Flags

Eine gültige Kombination von Werten der DETACH_VIRTUAL_DISK_FLAG-Enumeration .

[in] ProviderSpecificFlags

Kennzeichnen, die für den Typ des getrennten virtuellen Datenträgers spezifisch sind. Kann null sein, wenn keine erforderlich ist.

Rückgabewert

Status der Anforderung.

Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS.

Wenn die Funktion fehlschlägt, ist der Rückgabewert ein Fehlercode. Weitere Informationen finden Sie unter Systemfehlercodes.

Hinweise

Wenn die DetachVirtualDisk-Funktion mit dem Fehlercodewert ERROR_INVALID_PARAMETER fehlschlägt, kann die Ursache auf eine der folgenden Bedingungen zurückzuführen sein:

  • Der VirtualDiskHandle-Parameter ist kein gültiges Handle, das von der OpenVirtualDisk-Funktion erstellt wurde.
  • Der Flags-Parameter ist auf einen anderen Wert als DETACH_VIRTUAL_DISK_FLAG_NONE (0) festgelegt.
Das Hostvolume, das die Imagedatei des virtuellen Datenträgers enthält, kann nicht komprimiert oder EFS verschlüsselt werden.

Alle anderen geöffneten Handles für den virtuellen Datenträger müssen geschlossen werden, bevor die Funktion DetachVirtualDisk erfolgreich ausgeführt werden kann.

Wenn der virtuelle Datenträger angefügt ist und ein anderes Handle, das zum Anfügen verwendet wurde, geschlossen wurde, liegt dies daran, dass das flag ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME angegeben wurde. In diesem Fall kann die DetachVirtualDisk-Funktion erfolgreich sein, aber die VHD bleibt angefügt. Wenn der ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME nicht angegeben wurde, wird der virtuelle Datenträger automatisch getrennt, wenn das letzte geöffnete Handle geschlossen wird.

Diese Funktion schlägt fehl, wenn ein Anbieter nicht gefunden werden kann, wenn die Imagedatei ungültig ist, wenn das Image nicht angefügt ist oder wenn der Aufrufer nicht über SE_MANAGE_VOLUME_PRIVILEGE Zugriffsrechte für ein Windows Server-Betriebssystem verfügt. Weitere Informationen zur Dateisicherheit finden Sie unter Dateisicherheit und Zugriffsrechte.

CD- und DVD-Imagedateien (ISO) werden vor Windows 8 und Windows Server 2012 nicht unterstützt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7
Unterstützte Mindestversion (Server) Windows Server 2008 R2
Zielplattform Windows
Kopfzeile virtdisk.h
Bibliothek VirtDisk.lib
DLL VirtDisk.dll

Weitere Informationen

Informationen zu VHD

VHD-Referenz