Partager via


IVdsVdProvider::CreateVDisk, méthode (vds.h)

[À compter de Windows 8 et Windows Server 2012, l’interface COM du service de disque virtuel est remplacée par l’API gestion du stockage Windows.]

Crée un disque virtuel.

Syntaxe

HRESULT CreateVDisk(
  [in]  PVIRTUAL_STORAGE_TYPE        VirtualDeviceType,
  [in]  LPWSTR                       pPath,
  [in]  LPWSTR                       pStringSecurityDescriptor,
  [in]  CREATE_VIRTUAL_DISK_FLAG     Flags,
  [in]  ULONG                        ProviderSpecificFlags,
  [in]  ULONG                        Reserved,
  [in]  PVDS_CREATE_VDISK_PARAMETERS pCreateDiskParameters,
  [out] IVdsAsync                    **ppAsync
);

Paramètres

[in] VirtualDeviceType

Pointeur vers une structure VIRTUAL_STORAGE_TYPE qui spécifie le type de disque virtuel à créer.

[in] pPath

Chaîne de caractères larges terminée par NULL contenant le nom et le chemin du répertoire pour le fichier de stockage à créer pour le disque virtuel.

[in] pStringSecurityDescriptor

Chaîne de caractères larges terminée par null contenant le descripteur de sécurité à appliquer au disque virtuel. Si ce paramètre a la valeur NULL, le descripteur de sécurité dans le jeton d’accès de l’appelant est utilisé.

[in] Flags

Masque de bits de CREATE_VIRTUAL_DISK_FLAG valeurs d’énumération spécifiant la façon dont le disque virtuel doit être créé.

Valeur Signification
CREATE_VIRTUAL_DISK_FLAG_NONE
0x00000000
Aucun indicateur n'est spécifié.
CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION
0x00000001
Pré-allouer tout l’espace physique nécessaire à la taille virtuelle du disque virtuel. Cet indicateur est valide uniquement pour un disque virtuel de taille fixe.

[in] ProviderSpecificFlags

Masque de bits d’indicateurs spécifiques au type de disque virtuel en cours de création. Ces indicateurs sont spécifiques au fournisseur. Pour le fournisseur de disques virtuels Microsoft, ce paramètre doit être égal à zéro.

[in] Reserved

Le paramètre est réservé et doit être égal à zéro.

[in] pCreateDiskParameters

Pointeur vers une structure de VDS_CREATE_VDISK_PARAMETERS qui contient les paramètres de création de disque virtuel.

[out] ppAsync

Pointeur vers une interface IVdsAsync qui, une fois l’exécution réussie, reçoit l’interface IVdsAsync pour surveiller et contrôler cette opération. Les appelants doivent libérer l’interface reçue lorsqu’ils en ont terminé. Si la méthode IVdsAsync::Wait est appelée sur l’interface et qu’une valeur HRESULT de réussite est retournée, les interfaces retournées dans la structure VDS_ASYNC_OUTPUT doivent être libérées en appelant la méthode IUnknown::Release sur chaque pointeur d’interface. Toutefois, si Wait renvoie une valeur HRESULT d’échec, ou si le paramètre pHrResult de Wait reçoit une valeur HRESULT d’échec, les pointeurs d’interface dans la structure VDS_ASYNC_OUTPUT sont NULL et n’ont pas besoin d’être libérés. Vous pouvez tester les valeurs HRESULT de réussite ou d’échec à l’aide des macros SUCCEEDED et FAILED définies dans Winerror.h.

Valeur retournée

Cette méthode peut retourner des valeurs HRESULT standard, telles que E_INVALIDARG ou E_OUTOFMEMORY, et des valeurs de retour spécifiques à VDS. Il peut également retourner des codes d’erreur système convertis à l’aide de la macro HRESULT_FROM_WIN32 . Les erreurs peuvent provenir de VDS lui-même ou du fournisseur VDS sous-jacent utilisé. Les valeurs de retour possibles sont les suivantes.

Code de retour Description
S_OK
La commande s'est correctement terminée.

Notes

Les applications doivent initialiser la sécurité à l’échelle du processus en appelant la fonction CoInitializeSecurity . Le paramètre dwImpLevel doit être défini sur RPC_C_IMP_LEVEL_IMPERSONATE.

Windows Server 2008, Windows Vista et Windows Server 2003 : Ces actions ne sont pas requises avant Windows 7 et Windows Server 2008 R2.

Si le disque virtuel portant le nom de fichier spécifié n’existe pas, il est créé. Si le disque virtuel existe déjà, le fournisseur de disque virtuel retourne un pointeur d’interface vers l’objet de disque virtuel existant sans recréer le fichier.

Configuration requise

   
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête vds.h
Bibliothèque Uuid.lib

Voir aussi

IVdsVdProvider