IVdsLun::Extend, 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.]
Étend un numéro d’unité logique d’un nombre spécifié d’octets.
Syntaxe
HRESULT Extend(
[in] ULONGLONG ullNumberOfBytesToAdd,
[in] VDS_OBJECT_ID *pDriveIdArray,
[in] LONG lNumberOfDrives,
[out] IVdsAsync **ppAsync
);
Paramètres
[in] ullNumberOfBytesToAdd
Nombre d’octets par lesquels étendre le numéro d’unité logique. Le nombre d’octets n’est pas obligatoire pour être un multiple pair de la taille de bloc ou de secteur des lecteurs. Le fournisseur peut arrondir le nombre d’octets à la hausse ou à la baisse pour répondre aux exigences d’alignement ou à d’autres restrictions. Dans la plupart des cas, le fournisseur arrondit, en veillant à ce que, à de rares exceptions près, le numéro d’unité logique soit étendu d’au moins le nombre d’octets demandés.
[in] pDriveIdArray
Pointeur vers un tableau de GUID de lecteur. Le fournisseur utilise ces lecteurs pour étendre le numéro d’unité logique. Les lecteurs sont utilisés dans la séquence spécifiée ; le fournisseur utilise toutes les extensions sur un lecteur avant de passer au suivant et s’arrête lorsque le numéro d’unité logique a été étendu du nombre d’octets demandé.
L’appelant peut également demander au fournisseur de sélectionner automatiquement les lecteurs en passant NULL dans ce paramètre et zéro dans le paramètre lNumberOfDrives . Notez que la transmission de la valeur NULL est valide uniquement si le paramètre lNumberOfDrives est égal à zéro.
[in] lNumberOfDrives
Nombre de lecteurs spécifié dans le paramètre pDriveIdArray . Si l’appelant réussit zéro, le fournisseur sélectionne les lecteurs.
[out] ppAsync
Adresse d’un pointeur d’interface IVdsAsync , que VDS initialise au retour. Les appelants doivent libérer l’interface. Utilisez cette interface pour annuler, attendre ou interroger l’état de l’opération.
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/valeur de retour | Description |
---|---|
|
Cette valeur de retour signale un problème logiciel ou de communication à l’intérieur d’un fournisseur qui met en cache des informations sur le tableau. Utilisez la méthode IVdsHwProvider::Reenumerate suivie de la méthode IVdsHwProvider::Refresh pour restaurer le cache. |
|
L’objet LUN n’est plus présent. |
|
Le numéro d’unité logique est en état d’échec et ne peut pas effectuer l’opération demandée. |
|
Une autre opération est en cours ; cette opération ne peut pas continuer tant que l’opération ou les opérations précédentes ne sont pas terminées. |
|
Peut être retourné à partir de n’importe quelle méthode qui prend une constante VDS_OBJECT_ID . Cette valeur de retour indique que l’identificateur ne fait pas référence à un objet existant. |
|
Cette opération ou cette combinaison de paramètres n’est pas prise en charge par ce fournisseur. |
|
Il n’y a pas assez d’espace utilisable pour cette opération. |
|
Il n’y a pas suffisamment de lecteurs libres dans le sous-système pour effectuer cette opération. |
Remarques
Les appelants peuvent spécifier une liste de lecteurs que le fournisseur doit utiliser pour étendre le numéro d’unité logique ou demander au fournisseur de sélectionner automatiquement les lecteurs.
Une fois le numéro d’unité logique étendu, l’appelant doit utiliser le code de contrôle IOCTL_DISK_UPDATE_PROPERTIES pour rendre la taille de disque mise à jour visible sur l’ordinateur sur lequel le numéro d’unité logique est masqué.
Les implémenteurs doivent retourner un pointeur vers l’interface IVdsAsync pour cette méthode, que l’appel lance ou non une opération asynchrone.
Si le paramètre ullNumberOfBytesToAdd est supérieur au nombre d’octets disponibles sur les lecteurs spécifiés dans le paramètre pDriveIdArray , utilisez d’abord les lecteurs spécifiés, puis sélectionnez les autres lecteurs disponibles. S’il n’y a pas suffisamment de lecteurs de ce type pour étendre le numéro d’unité logique du nombre d’octets demandé, retournez une erreur et n’étendez pas le numéro d’unité logique.
Configuration requise
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | vds.h |
Bibliothèque | Uuid.lib |