VDS_VOLUME_PROP2 structure (vds.h)

[Beginning with Windows 8 and Windows Server 2012, the Virtual Disk Service COM interface is superseded by the Windows Storage Management API.]

Defines the properties of a volume object. This structure is identical to the VDS_VOLUME_PROP structure, except that it also includes the volume GUIDs.

Syntax

typedef struct _VDS_VOLUME_PROP2 {
  VDS_OBJECT_ID        id;
  VDS_VOLUME_TYPE      type;
  VDS_VOLUME_STATUS    status;
  VDS_HEALTH           health;
  VDS_TRANSITION_STATE TransitionState;
  ULONGLONG            ullSize;
  ULONG                ulFlags;
  VDS_FILE_SYSTEM_TYPE RecommendedFileSystemType;
  ULONG                cbUniqueId;
  LPWSTR               pwszName;
  BYTE                 *pUniqueId;
} VDS_VOLUME_PROP2, *PVDS_VOLUME_PROP2;

Members

id

The GUID of the volume.

type

A VDS_VOLUME_TYPE enumeration value that specifies the volume type. Volume types are simple, spanned, striped (RAID-0), mirrored, or striped with parity (RAID-5).

status

A VDS_VOLUME_STATUS enumeration value that specifies the status of the volume.

health

A VDS_HEALTH enumeration value that specifies the health state of the volume.

TransitionState

A VDS_TRANSITION_STATE enumeration value that specifies the transition state of the volume.

ullSize

The size of the volume, in bytes.

ulFlags

A bitmask of VDS_VOLUME_FLAG enumeration values that describe the volume.

RecommendedFileSystemType

A VDS_FILE_SYSTEM_TYPE enumeration value that specifies the preferred file system for the volume. Must be one of the following: VDS_FST_NTFS, VDS_FST_FAT, VDS_FST_FAT32, VDS_FST_UDF, VDS_FST_CDFS, or VDS_FST_UNKNOWN.

cbUniqueId

The length of the byte array that the pUniqueId member points to.

pwszName

The name that was used to open a handle for the volume with the CreateFile function. For example, \?\GLOBALROOT\Device\HarddiskVolume1.

pUniqueId

A byte array that contains the unique identifier for the volume.

Remarks

The IVdsVolume2::GetProperties2 method returns this structure to report the properties of a volume object.

When a volume is offline, the VDS_VF_PERMANENTLY_DISMOUNTED flag is set in the ulFlags member of the VDS_VOLUME_PROP2 structure, and the VDS_VS_OFFLINE volume status value is also set in the status member of this structure.

For GPT and dynamic volumes, the unique identifier that the pUniqueId member points to is globally unique.

For removable media drives, the volume exists and has its own unique identifier even if there is no media in the device. If a volume is formatted on removable media, that volume has its own unique identifier. For more information, see Supporting Mount Manager Requests in a Storage Class Driver.

The format of the unique identifier may vary among different types of devices and volumes. For basic volumes on MBR disks, the unique identifier is based on the disk signature and partition offset. Because the disk signature and partition offset are DWORD values, the unique identifier cannot be guaranteed to be globally unique across computers.

If the disk signature changes, the volume's unique identifier also changes. Disk signature changes usually occur as a result of a collision during disk cloning.

Note that a unique identifier is not the same as a volume GUID path. To find the volume GUID paths for a volume, use the IVdsVolumeMF3::QueryVolumeGuidPathnames method.

Requirements

Requirement Value
Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Header vds.h

See also

IVdsVolume2::GetProperties2

MOUNTDEV_UNIQUE_ID

VDS Structures

VDS_FILE_SYSTEM_TYPE

VDS_HEALTH

VDS_TRANSITION_STATE

VDS_VOLUME_FLAG

VDS_VOLUME_STATUS

VDS_VOLUME_TYPE