CreateVirtualDisk, fonction (virtdisk.h)
Crée un fichier image de disque dur virtuel (VHD), soit à l’aide des paramètres par défaut, soit à l’aide d’un disque virtuel ou d’un disque physique existant.
Syntaxe
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
);
Paramètres
[in] VirtualStorageType
Pointeur vers une structure de VIRTUAL_STORAGE_TYPE qui contient le type de disque souhaité et les informations de fournisseur.
[in] Path
Pointeur vers une chaîne valide qui représente le chemin d’accès au nouveau fichier d’image de disque virtuel.
[in] VirtualDiskAccessMask
Valeur VIRTUAL_DISK_ACCESS_MASK à utiliser lors de l’ouverture du fichier de disque virtuel nouvellement créé. Si le membre Version du paramètre Parameters est défini sur CREATE_VIRTUAL_DISK_VERSION_2 seule la valeur VIRTUAL_DISK_ACCESS_NONE (0) peut être spécifiée.
[in, optional] SecurityDescriptor
Pointeur facultatif vers un SECURITY_DESCRIPTOR à appliquer au fichier image de disque virtuel. Si ce paramètre a la valeur NULL, le descripteur de sécurité du répertoire parent est utilisé.
[in] Flags
Indicateurs de création, qui doivent être une combinaison valide de l’énumération CREATE_VIRTUAL_DISK_FLAG .
[in] ProviderSpecificFlags
Indicateurs spécifiques au type de disque virtuel en cours de création. Peut être égal à zéro si aucun n’est requis.
[in] Parameters
Pointeur vers une structure CREATE_VIRTUAL_DISK_PARAMETERS valide qui contient des données de paramètre de création.
[in, optional] Overlapped
Pointeur facultatif vers une structure CHEVAUCHEMENT VALIDE si une opération asynchrone est souhaitée.
[out] Handle
Pointeur vers l’objet handle qui représente le disque virtuel nouvellement créé.
Valeur retournée
Si la fonction réussit, la valeur de retour est ERROR_SUCCESS et le paramètre Handle contient un pointeur valide vers le nouvel objet de disque virtuel.
Si la fonction échoue, la valeur de retour est un code d’erreur et la valeur du paramètre Handle n’est pas définie. Pour plus d’informations, consultez Codes d’erreur système.
Remarques
Si la fonction CreateVirtualDisk échoue avec une valeur de code d’erreur ERROR_INVALID_PARAMETER, la cause peut être due à l’une des conditions suivantes :
- Le paramètre VirtualStorageType a la valeur NULL.
- Le paramètre Parameters a la valeur NULL.
- Le membre Version du paramètre Parameters n’est pas défini sur CREATE_VIRTUAL_DISK_VERSION_1 ou CREATE_VIRTUAL_DISK_VERSION_2.
- Le membre Version du paramètre Parameters a la valeur CREATE_VIRTUAL_DISK_VERSION_2 , mais le paramètre VirtualDiskAccessMask n’est pas défini sur VIRTUAL_DISK_ACCESS_NONE.
- Le membre BlockSizeInBytes du paramètre Parametersn’est pas défini sur CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_BLOCK_SIZE (0), 0x80000 (512 Ko) ou 0x200000 (2 Mo).
- Le membre MaximumSize du paramètre Parameters est inférieur à 3 Mo.
- Le membre MaximumSize du paramètre Parameters n’est pas aligné avec la valeur du membre SectorSizeInBytes .
- Le paramètre VirtualDiskAccessMask est défini sur une valeur de
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
. - Le paramètre Flags est supérieur à CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION.
Lors de la création des différents types de disques virtuels, les combinaisons suivantes de paramètres de création sont recommandées :
- L’indicateur CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION doit être spécifié.
- ParentPath ne doit pas être spécifié.
- SourcePath peut être spécifié si vous le souhaitez.
- L’indicateur CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION ne doit pas être spécifié.
- ParentPath ne doit pas être spécifié.
- SourcePath peut être spécifié si vous le souhaitez.
- L’indicateur CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION ne doit pas être spécifié.
- ParentPath doit être spécifié.
- SourcePath ne doit pas être spécifié.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7 |
Serveur minimal pris en charge | Windows Server 2008 R2 |
Plateforme cible | Windows |
En-tête | virtdisk.h |
Bibliothèque | VirtDisk.lib |
DLL | VirtDisk.dll |