Funzione CreateVirtualDisk (virtdisk.h)
Crea un file di immagine del disco rigido virtuale (VHD), usando parametri predefiniti o usando un disco virtuale o un disco fisico esistente.
Sintassi
DWORD CreateVirtualDisk(
[in] PVIRTUAL_STORAGE_TYPE VirtualStorageType,
[in] PCWSTR Path,
[in] VIRTUAL_DISK_ACCESS_MASK VirtualDiskAccessMask,
[in, optional] PSECURITY_DESCRIPTOR SecurityDescriptor,
[in] CREATE_VIRTUAL_DISK_FLAG Flags,
[in] ULONG ProviderSpecificFlags,
[in] PCREATE_VIRTUAL_DISK_PARAMETERS Parameters,
[in, optional] LPOVERLAPPED Overlapped,
[out] PHANDLE Handle
);
Parametri
[in] VirtualStorageType
Puntatore a una struttura VIRTUAL_STORAGE_TYPE che contiene il tipo di disco desiderato e le informazioni sul fornitore.
[in] Path
Puntatore a una stringa valida che rappresenta il percorso del nuovo file di immagine del disco virtuale.
[in] VirtualDiskAccessMask
Valore VIRTUAL_DISK_ACCESS_MASK da usare quando si apre il file del disco virtuale appena creato. Se il membro Version del parametro Parameters è impostato su CREATE_VIRTUAL_DISK_VERSION_2 , è possibile specificare solo il valore VIRTUAL_DISK_ACCESS_NONE (0).
[in, optional] SecurityDescriptor
Puntatore facoltativo a un SECURITY_DESCRIPTOR da applicare al file di immagine del disco virtuale. Se questo parametro è NULL, verrà usato il descrittore di sicurezza della directory padre.
[in] Flags
Flag di creazione, che devono essere una combinazione valida dell'enumerazione CREATE_VIRTUAL_DISK_FLAG .
[in] ProviderSpecificFlags
Flag specifici del tipo di disco virtuale da creare. Può essere zero se non è necessario alcuno.
[in] Parameters
Puntatore a una struttura di CREATE_VIRTUAL_DISK_PARAMETERS valida che contiene i dati dei parametri di creazione.
[in, optional] Overlapped
Puntatore facoltativo a una struttura OVERLAPPED valida se si desidera eseguire un'operazione asincrona .
[out] Handle
Puntatore all'oggetto handle che rappresenta il disco virtuale appena creato.
Valore restituito
Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS 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
Se la funzione CreateVirtualDisk 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 VirtualStorageType è NULL.
- Il parametro Parameters è NULL.
- Il membro Version del parametro Parameters non è impostato su CREATE_VIRTUAL_DISK_VERSION_1 o CREATE_VIRTUAL_DISK_VERSION_2.
- Il membro Version del parametro Parameters è impostato su CREATE_VIRTUAL_DISK_VERSION_2 , ma il parametro VirtualDiskAccessMask non è impostato su VIRTUAL_DISK_ACCESS_NONE.
- Il membro BlockSizeInBytes del parametro Parameters non è impostato su CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_BLOCK_SIZE (0), 0x80000 (512 KB) o 0x200000 (2 MB).
- Il membro MaximumSize del parametro Parameters è minore di 3 MB.
- Il membro MaximumSize del parametro Parameters non è allineato al valore del membro SectorSizeInBytes .
- Il parametro VirtualDiskAccessMask è impostato su un valore di
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
. - Il parametro Flags è maggiore di CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION.
Quando si creano i vari tipi di dischi virtuali, è consigliabile usare le combinazioni di parametri di creazione seguenti:
- Specificare il flag CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION .
- ParentPath non deve essere specificato.
- SourcePath può essere specificato se necessario.
- Il flag CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION non deve essere specificato.
- ParentPath non deve essere specificato.
- SourcePath può essere specificato se necessario.
- Il flag CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION non deve essere specificato.
- È necessario specificare ParentPath.
- SourcePath non deve essere specificato.
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 |