Méthode IVdsVolume ::SetFlags (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.]

Définit les indicateurs de volume.

Syntaxe

HRESULT SetFlags(
  [in] ULONG ulFlags,
  [in] BOOL  bRevertOnClose
);

Paramètres

[in] ulFlags

Indicateurs énumérés par VDS_VOLUME_FLAG. Les appelants peuvent définir les indicateurs suivants :

  • VDS_VF_LBN_REMAP_ENABLED
  • VDS_VF_HIDDEN
  • VDS_VF_READONLY
  • VDS_VF_NO_DEFAULT_DRIVE_LETTER
  • VDS_VF_INSTALLABLE
  • VDS_VF_SHADOW_COPY

[in] bRevertOnClose

Si la valeur est TRUE, les indicateurs sont temporairement définis. VDS réinitialise chaque indicateur à l’état précédent lorsque l’appelant libère la dernière référence à l’objet de volume, appelle IVdsVolume ::ClearFlags ou démonte le volume, sauf lorsque l’indicateur est défini sur l’ensemble du disque (voir le tableau de la section Remarques pour plus d’informations). Lorsque l’indicateur est défini sur l’ensemble du disque, la méthode IVdsVolume ::ClearFlags doit être appelée pour réinitialiser les indicateurs.

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
S_OK
Les indicateurs sont définis.
VDS_E_LBN_REMAP_ENABLED_FLAG
0x80042456L
Le fournisseur ne prend pas en charge l’indicateur de volume VDS_VF_LBN REMAP_ENABLED .
VDS_E_NO_DRIVELETTER_FLAG
0x80042457L
Le fournisseur ne prend pas en charge l’indicateur de volume DRIVELETTER VDS_VF_NO .
VDS_E_REVERT_ON_CLOSE
0x80042458L
bRevertOnClose doit être défini sur true uniquement si l’indicateur de volume VDS_VF_HIDDEN ou VDS_VF_READONLY est défini.
VDS_E_REVERT_ON_CLOSE_SET
0x80042459L
Certains indicateurs de volume sont déjà définis sur true. Vous devez d’abord effacer ces indicateurs, puis appeler cette méthode et définir à nouveau le paramètre bRevertOnClose sur true. La valeur de retour VDS_E_INVALID_OPERATION peut également indiquer cette condition.

Remarques

L’étendue des indicateurs VDS_VF_READONLY, VDS_VF_HIDDEN et VDS_VF_NO_DEFAULT_DRIVE_LETTER varie selon le type de disque (de base ou dynamique) et le style de partition (MBR ou GPT). L’étendue est basée sur disque ou sur volume, comme décrit par les conditions suivantes :

  • Si le disque est de base et MBR, la définition de l’un de ces indicateurs sur un volume affecte le volume actuel et tous les volumes futurs avec l’attribut spécifié créé sur le disque.
  • Si le disque est de base et gpT, dynamique et MBR, ou dynamique et GPT, la définition de l’un des indicateurs sur un volume s’applique uniquement à ce volume spécifique.
Le tableau suivant identifie l’étendue de chaque indicateur de volume sur les disques de base MBR, les disques de base GPT et les disques dynamiques MBR ou GPT.
Indicateur Disques de base MBR Disques de base GPT Disques dynamiques MBR ou GPT
VDS_VF_LBN_REMAP_ENABLED Ne peut pas être définie. Ne peut pas être définie. Défini sur le volume, s’il est pris en charge par un gestionnaire de volumes tiers.
VDS_VF_HIDDEN Défini sur l’ensemble du disque. Défini sur les volumes (partitions de données uniquement). Défini sur les volumes.
VDS_VF_READONLY Défini sur l’ensemble du disque. Défini sur les volumes (partitions de données uniquement). Défini sur les volumes.
VDS_VF_NO_DEFAULT_DRIVE_LETTER Défini sur l’ensemble du disque. Défini sur les partitions. Voir VDS_VOLUME_FLAG.
VDS_VF_SHADOW_COPY Défini sur l’ensemble du disque. Défini sur les volumes (partitions de données uniquement). Défini sur les volumes.
VDS_VF_INSTALLABLE Ne peut pas être définie. Ne peut pas être définie. Défini sur les volumes.
 

Si bRevertOnClose a la valeur TRUE et que le disque est un disque de base MBR et que le volume est ensuite supprimé, les indicateurs sont toujours définis sur l’ensemble du disque et les indicateurs s’appliquent à tous les nouveaux volumes créés sur le disque. Les IVdsAdvancedDisk ::Clean doivent ensuite être utilisés pour effacer les indicateurs.

Pour créer un volume de démarrage sur un disque dynamique, vous devez définir l’indicateur VDS_VF_INSTALLABLE pour le volume, puis mettre en forme le volume en appelant la méthode IVdsVolumeMF ::Format .

Cette méthode échoue si le volume contient un ou plusieurs des indicateurs suivants :

  • VDS_VF_SYSTEM
  • VDS_VF_BOOT
  • VDS_VF_PAGEFILE
  • VDS_VF_HIBERNATION
  • VDS_VF_CRASHDUMP

La spécification d’un VDS_VF_HIDDEN ou d’un VDS_VF_READONLY force le démontage et la remontage du volume, sauf si bRevertOnClose a la valeur TRUE.

Configuration requise

Condition requise Valeur
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

Voir aussi

IVdsAdvancedDisk ::Clean

IVdsVolume

IVdsVolume ::ClearFlags

VDS_VOLUME_FLAG