Condividi tramite


Funzione DetachVirtualDisk (virtdisk.h)

Scollega un disco rigido virtuale (VHD) o un file di immagine CD o DVD (ISO) individuando un provider di dischi virtuali appropriato per eseguire l'operazione.

Sintassi

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

Parametri

[in] VirtualDiskHandle

Handle per un disco virtuale aperto, che deve essere stato aperto usando il flag VIRTUAL_DISK_ACCESS_DETACH impostato nel parametro VirtualDiskAccessMask sulla funzione OpenVirtualDisk . Per informazioni su come aprire un disco virtuale, vedere la funzione OpenVirtualDisk .

[in] Flags

Combinazione valida di valori dell'enumerazione DETACH_VIRTUAL_DISK_FLAG .

[in] ProviderSpecificFlags

Flag specifici del tipo di disco virtuale da scollegare. Può essere zero se non è necessario alcuno.

Valore restituito

Stato della richiesta.

Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è un codice di errore. Per altre informazioni, vedere Codici di errore di sistema.

Commenti

Se la funzione DetachVirtualDisk ha esito negativo con un valore di codice di errore di ERROR_INVALID_PARAMETER, la causa può essere dovuta a una delle condizioni seguenti:

  • Il parametro VirtualDiskHandle non è un handle valido creato dalla funzione OpenVirtualDisk .
  • Il parametro Flags è impostato su un valore diverso da DETACH_VIRTUAL_DISK_FLAG_NONE (0).
Il volume host che contiene il file di immagine del disco virtuale non può essere compresso o crittografato con EFS.

Tutti gli altri handle aperti per il disco virtuale devono essere chiusi prima che la funzione DetachVirtualDisk possa avere esito positivo.

Se il disco virtuale è collegato e un altro handle usato per collegarlo è stato chiuso, perché è stato specificato il flag ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME . In questo caso, la funzione DetachVirtualDisk può avere esito positivo, ma il disco rigido virtuale rimarrà collegato. Se il ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME non è stato specificato, il disco virtuale verrà scollegato automaticamente alla chiusura dell'ultimo handle aperto.

Questa funzione avrà esito negativo se non è possibile trovare un provider, se il file di immagine non è valido, se l'immagine non è collegata o se il chiamante non dispone di diritti di accesso SE_MANAGE_VOLUME_PRIVILEGE in un sistema operativo Windows Server. Per altre informazioni sulla sicurezza dei file, vedere Protezione file e diritti di accesso.

I file di immagine CD e DVD (ISO) non sono supportati prima di Windows 8 e Windows Server 2012.

Requisiti

Requisito Valore
Client minimo supportato Windows 7
Server minimo supportato Windows Server 2008 R2
Piattaforma di destinazione Windows
Intestazione virtdisk.h
Libreria VirtDisk.lib
DLL VirtDisk.dll

Vedi anche

Informazioni sul disco rigido virtuale

Informazioni di riferimento sul disco rigido virtuale