VDS_DISK_PROP2 structure (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 propriétés d’un objet de disque. Cette structure est identique à la structure VDS_DISK_PROP , sauf qu’elle inclut également le chemin d’accès à l’emplacement et, si le disque est hors connexion, la raison pour laquelle il est hors connexion.

Syntaxe

typedef struct _VDS_DISK_PROP2 {
  VDS_OBJECT_ID           id;
  VDS_DISK_STATUS         status;
  VDS_DISK_OFFLINE_REASON OfflineReason;
  VDS_LUN_RESERVE_MODE    ReserveMode;
  VDS_HEALTH              health;
  DWORD                   dwDeviceType;
  DWORD                   dwMediaType;
  ULONGLONG               ullSize;
  ULONG                   ulBytesPerSector;
  ULONG                   ulSectorsPerTrack;
  ULONG                   ulTracksPerCylinder;
  ULONG                   ulFlags;
  VDS_STORAGE_BUS_TYPE    BusType;
  VDS_PARTITION_STYLE     PartitionStyle;
  union {
    DWORD dwSignature;
    GUID  DiskGuid;
  };
  LPWSTR                  pwszDiskAddress;
  LPWSTR                  pwszName;
  LPWSTR                  pwszFriendlyName;
  LPWSTR                  pwszAdaptorName;
  LPWSTR                  pwszDevicePath;
  LPWSTR                  pwszLocationPath;
} VDS_DISK_PROP2, *PVDS_DISK_PROP2;

Membres

id

GUID de l’objet disque.

status

Valeur d’énumération VDS_DISK_STATUS qui spécifie le status du disque. Si le service VDS ne peut pas ouvrir un handle sur le disque, il définit ce membre sur VDS_DS_UNKNOWN.

Note Ce membre peut être VDS_DS_ONLINE, même si le status du pack conteneur est VDS_PS_OFFLINE.
 

OfflineReason

Si le disque est hors connexion, ce membre est une valeur d’énumération VDS_DISK_OFFLINE_REASON qui spécifie la raison pour laquelle il est hors connexion.

ReserveMode

Ce membre est réservé pour un usage ultérieur.

health

Valeur d’énumération VDS_HEALTH qui spécifie l’état d’intégrité du disque. Voici les valeurs valides pour ce membre.

VDS_H_UNKNOWN (0)

VDS_H_HEALTHY (1)

VDS_H_FAILING (4)

VDS_H_FAILED (8)

dwDeviceType

Type d’appareil défini dans Winioctl.h, qui inclut notamment les types suivants :

dwMediaType

Type de média énuméré par STORAGE_MEDIA_TYPE. Les disques de base et dynamiques sont mappés à l’énumérateur FixedMedia . Pour plus d’informations, consultez STORAGE_MEDIA_TYPE.

ullSize

Taille du disque en octets. Pour déterminer la taille maximale du volume d’un disque, appelez IVdsDisk3 ::QueryFreeExtents et ajoutez les tailles de toutes les extensions libres.

ulBytesPerSector

Nombre d’octets dans chaque secteur.

ulSectorsPerTrack

Nombre de secteurs dans chaque piste.

ulTracksPerCylinder

Nombre de pistes dans chaque cylindre.

ulFlags

Masque de bits de VDS_DISK_FLAG valeurs d’énumération qui spécifient différents attributs de disque.

BusType

Types de bus d’entrée/sortie énumérés par VDS_STORAGE_BUS_TYPE.

PartitionStyle

Énumération VDS_PARTITION_STYLE qui spécifie le style de partition. Ce membre est le discriminant du syndicat.

dwSignature

Utilisé si PartitionStyle est VDS_PST_MBR (1). Signature de la partition MBR. Il n’est pas garanti que cette valeur soit unique.

DiskGuid

Utilisé si PartitionStyle est VDS_PST_GPT (2). The
GUID du disque. En outre, chaque partition GPT a son propre GUID. (Voir VDS_PARTITION_INFO_GPT.)

pwszDiskAddress

Adresse d’un disque de type SCSI au formatNNN NNNcibleNNN Chemin NNN cible NNNlun,NNN est un ou plusieurs chiffres.

Les disques SCSI, les disques IDE et les disques Fibre Channel peuvent avoir une telle adresse. Les disques USB et 1394 ont des formats d’adresse différents et ne sont pas stockés.

Ce membre est facultatif et peut être NULL si aucune valeur n’est disponible. S’il n’est pas NULL, sa longueur doit être supérieure ou égale à 22 WCHAR et inférieure ou égale à 64 WCHAR, y compris le terminateur NULL requis. Les applications qui reçoivent la structure VDS_DISK_PROP2 en appelant IVdsDisk3 ::GetProperties2 doivent case activée si ce membre a la valeur NULL.

pwszName

Nom utilisé pour ouvrir un handle à un objet créé à l’aide de la fonction CreateFile . Par exemple :

pwszFriendlyName

Nom retourné par le gestionnaire Plug-and-Play (PnP). Ce nom est conservé dans le Registre Windows par le Plug-and-Play Manager, par exemple : « PÉRIPHÉRIQUE de disque ST34573N SCSI ».

pwszAdaptorName

Nom de l’adaptateur auquel ce disque est attaché. Le Gestionnaire PnP retourne le nom, qui est conservé dans le Registre Windows, par exemple : « Adaptec AHA-2940U2W - Ultra2 SCSI ».

pwszDevicePath

Chaîne retournée par le Gestionnaire PnP. Le Gestionnaire PnP utilise le chemin d’accès de l’appareil pour identifier de manière unique un appareil sur un ordinateur. Pour plus d’informations, consultez SP_DEVICE_INTERFACE_DETAIL_DATA_W.

pwszLocationPath

Chaîne qui contient le chemin d’accès de l’emplacement PnP du disque. Le format de cette chaîne dépend du type de bus. Si le type de bus est SCSI, SAS ou RAID PCI, le format est AdapterPnpLocationPath#BusType(PPathIdTTargetIdLLunId). Si le type de bus est IDE, ATA, PATA ou SATA, le format est AdapterPnpLocationPath#BusType(CPathIdTTargetIdLLunId). Consultez la section Remarques suivante pour obtenir un tableau qui répertorie les parties de cette chaîne.

Note Pour Hyper-V, ce membre est NULL, car le contrôleur virtuel ne retourne pas le chemin d’accès à l’emplacement.
 

Remarques

La méthode IVdsDisk3 ::GetProperties2 retourne cette structure pour signaler les propriétés d’un objet de disque.

Le tableau suivant répertorie les parties de la chaîne de chemin d’accès d’emplacement utilisée dans le membre pwszLocationPath .

Partie chemin d’accès à l’emplacement Description
AdapterPnpLocationPath Chemin d’accès de l’emplacement PnP de l’adaptateur. Elle est récupérée en appelant la fonction SetupDiGetDeviceProperty , en passant &DEVPKEY_Device_LocationPaths pour le paramètre PropertyKey .
BusType Type de bus : ATA, RAID, SAS ou SCSI.
Note Si le type de bus est IDE, PATA ou SATA, il apparaît comme ATA dans la chaîne de chemin d’accès d’emplacement. S’il s’agit d’un RAID PCI, il apparaît sous la forme RAID.
 
PathId Numéro du bus. Il s’agit de la valeur du membre PathId de la structure SCSI_ADDRESS qui est retournée par le code de contrôle IOCTL_SCSI_GET_ADDRESS .
TargetId Numéro de l’appareil cible. Il s’agit de la valeur du membre TargetId de la structure SCSI_ADDRESS qui est retournée par le code de contrôle IOCTL_SCSI_GET_ADDRESS .
LunId Numéro du numéro d’unité logique. Il s’agit de la valeur du membre Lun de la structure SCSI_ADDRESS qui est retournée par le code de contrôle IOCTL_SCSI_GET_ADDRESS .
 

Le tableau suivant contient des exemples de chemins d’accès d’emplacement.

Type de bus Exemple de chemin d’accès à l’emplacement
ATA PCIROOT(0)#PCI(0100)#ATA(C01T03L00)
RAID PCIROOT(0)#PCI(0200)#PCI(0003)#PCI(0100)#RAID(P02T00L00)
SAS PCIROOT(1)#PCI(0300)#SAS(P00T03L00)
SCSI PCIROOT(0)#PCI(1C00)#PCI(0000)#SCSI(P00T01L01)

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
En-tête vds.h

Voir aussi

IVdsDisk3 ::GetProperties2

VDS_DISK_OFFLINE_REASON

VDS_PARTITION_INFO_GPT

VDS_PARTITION_INFO_MBR