Funzione OpenVirtualDisk (virtdisk.h)
Apre un disco rigido virtuale (VHD) o un file di immagine CD o DVD (ISO) da usare.
Sintassi
DWORD OpenVirtualDisk(
[in] PVIRTUAL_STORAGE_TYPE VirtualStorageType,
[in] PCWSTR Path,
[in] VIRTUAL_DISK_ACCESS_MASK VirtualDiskAccessMask,
[in] OPEN_VIRTUAL_DISK_FLAG Flags,
[in, optional] POPEN_VIRTUAL_DISK_PARAMETERS Parameters,
[out] PHANDLE Handle
);
Parametri
[in] VirtualStorageType
Puntatore a una struttura di VIRTUAL_STORAGE_TYPE valida.
[in] Path
Puntatore a un percorso valido dell'immagine del disco virtuale da aprire.
[in] VirtualDiskAccessMask
Valore valido dell'enumerazione VIRTUAL_DISK_ACCESS_MASK .
[in] Flags
Combinazione valida di valori dell'enumerazione OPEN_VIRTUAL_DISK_FLAG .
[in, optional] Parameters
Puntatore facoltativo a una struttura di OPEN_VIRTUAL_DISK_PARAMETERS valida. Può essere NULL.
[out] Handle
Puntatore all'oggetto handle che rappresenta il disco virtuale aperto.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è ERROR_SUCCESS (0) e il parametro Handle contiene un puntatore valido al nuovo oggetto disco virtuale.
Se la funzione ha esito negativo, il valore restituito è un codice di errore e il valore del parametro Handle non è definito. Per altre informazioni, vedere Codici di errore di sistema.
Commenti
Per evitare un errore di richiesta aperta quando si tenta di aprire un handle a un disco virtuale collegato in modo permanente, si applicano i requisiti seguenti:
- Il parametro VirtualDiskAccessMask deve includere il flag VIRTUAL_DISK_ACCESS_DETACH (0x00040000).
- L'accesso in scrittura al file non deve essere richiesto se l'operazione di apertura originale che ha creato il disco virtuale collegato in modo permanente richiedeva solo l'accesso in lettura.
- Il parametro VirtualStorageType è NULL.
- Il parametro Path è NULL.
- Il parametro VirtualDiskAccessMask è impostato su un valore di
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
. - Il parametro Flags è impostato su un valore di
(Flags & ~(OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS | OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE))
. - Il membro Version del parametro Parameters non è impostato su OPEN_VIRTUAL_DISK_VERSION_1 o OPEN_VIRTUAL_DISK_VERSION_2.
Il percorso a cui punta il parametro Path non può trovarsi in una condivisione di rete locale, ovvero una condivisione di rete tramite loopback. Questa funzione avrà esito negativo con errore ERROR_FILE_SYSTEM_LIMITATION (665) se il percorso si trova in una condivisione di rete locale. Questa funzione avrà esito negativo con errore ERROR_FILE_CORRUPT (1392) se viene aperto un disco virtuale ISO e le dimensioni del file non sono pari a più di 2 KB (2.048 byte), è di almeno 34 KB (34.816 byte) o il descrittore della struttura del volume non contiene un identificatore di volume CDFS o UDFS noto.
Al termine dell'utilizzo dell'handle dell'oggetto restituito nel parametro Handle , usare la funzione CloseHandle per chiudere l'handle.
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 |