VDS_DISK_PROP2 结构 (vds.h)

[从Windows 8和Windows Server 2012开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]

定义 磁盘对象的属性。 此结构与 VDS_DISK_PROP 结构相同,只不过它还包括位置路径,以及磁盘脱机的原因。

语法

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;

成员

id

磁盘对象的 GUID。

status

一个VDS_DISK_STATUS枚举值,该值指定磁盘的状态。如果 VDS 服务无法打开磁盘的句柄,则会将此成员设置为 VDS_DS_UNKNOWN

注意 即使包含包的状态VDS_PS_OFFLINE,也可以VDS_DS_ONLINE此成员。
 

OfflineReason

如果磁盘处于脱机状态,则此成员是 一个VDS_DISK_OFFLINE_REASON 枚举值,该值指定磁盘脱机的原因。

ReserveMode

此成员留待将来使用。

health

一个VDS_HEALTH枚举值,该值指定磁盘的运行状况状态。 下面是此成员的有效值。

VDS_H_UNKNOWN (0)

VDS_H_HEALTHY (1)

VDS_H_FAILING (4)

VDS_H_FAILED (8)

dwDeviceType

Winioctl.h 中定义的设备类型,其中包括以下类型等:

dwMediaType

由 STORAGE_MEDIA_TYPE 枚举的媒体类型。 基本磁盘和动态磁盘映射到 FixedMedia 枚举器。 有关详细信息,请参阅 STORAGE_MEDIA_TYPE

ullSize

磁盘的大小(以字节为单位)。 若要确定磁盘的最大卷大小,请调用 IVdsDisk3::QueryFreeExtents 并添加所有可用盘区的大小。

ulBytesPerSector

每个扇区中的字节数。

ulSectorsPerTrack

每个轨道中的扇区数。

ulTracksPerCylinder

每个柱形中的轨道数。

ulFlags

指定各种磁盘属性 的VDS_DISK_FLAG 枚举值的位掩码。

BusType

VDS_STORAGE_BUS_TYPE枚举的输入/输出总线类型。

PartitionStyle

指定分区样式 的VDS_PARTITION_STYLE 枚举。 这个成员是工会的歧视者。

dwSignature

如果 PartitionStyleVDS_PST_MBR ( 1) ,则使用。 MBR 分区的签名。 此值不保证是唯一的。

DiskGuid

如果 PartitionStyle (2 ) VDS_PST_GPT,则使用。 The
磁盘的 GUID。 此外,每个 GPT 分区都有自己的 GUID。 (请参阅 VDS_PARTITION_INFO_GPT.)

pwszDiskAddress

端口 NNN 路径NNN目标NNNLunNNN格式的类似 SCSI 的磁盘的地址,其中 NNN 是一个或多个数字。

SCSI 磁盘、IDE 磁盘和光纤通道磁盘可以有这样的地址。 USB 和 1394 磁盘具有不同的地址格式,不存储。

此成员是可选的,如果没有可用的值,可以为 NULL 。 如果它不是 NULL,则其长度必须大于或等于 22 WCHAR,小于或等于 64 WCHAR,包括所需的 NULL 终止符。 通过调用 IVdsDisk3::GetProperties2 接收VDS_DISK_PROP2结构的应用程序必须检查此成员是否为 NULL

pwszName

用于打开使用 CreateFile 函数创建的对象的句柄的名称。 例如:

pwszFriendlyName

即插即用 (PnP) 管理器返回的名称。 此名称由 即插即用 管理器在 Windows 注册表中维护,例如:“SEAGATE ST34573N SCSI 磁盘设备”。

pwszAdaptorName

此磁盘所附加到的适配器的名称。 PnP 管理器返回在 Windows 注册表中维护的名称,例如:“Adaptec AHA-2940U2W - Ultra2 SCSI”。

pwszDevicePath

PnP 管理器返回的字符串。 PnP 管理器使用设备路径来唯一标识计算机上的设备。 有关详细信息,请参阅 SP_DEVICE_INTERFACE_DETAIL_DATA_W

pwszLocationPath

包含磁盘的 PnP 位置路径的字符串。 此字符串的格式取决于总线类型。 如果总线类型为 SCSI、SAS 或 PCI RAID,则格式为 AdapterPnpLocationPath#BusType (PPathIdTTargetIdLLunId) 。 如果总线类型为 IDE、ATA、PATA 或 SATA,则格式为 AdapterPnpLocationPath#BusType (CPathIdTTargetIdLLunId) 。 有关列出此字符串部分的表,请参阅以下“备注”部分。

注意 对于 Hyper-V,此成员为 NULL,因为虚拟控制器不返回位置路径。
 

注解

IVdsDisk3::GetProperties2 方法返回此结构来报告磁盘对象的属性。

下表列出了 pwszLocationPath 成员中使用的位置路径字符串的各个部分。

位置路径部分 说明
AdapterPnpLocationPath 适配器的 PnP 位置路径。 这是通过调用 SetupDiGetDeviceProperty 函数检索的,为 PropertyKey 参数传递 &DEVPKEY_Device_LocationPaths。
BusType 总线类型:ATA、RAID、SAS 或 SCSI。
注意 如果总线类型为 IDE、PATA 或 SATA,则它在位置路径字符串中显示为 ATA。 如果是 PCI RAID,则显示为 RAID。
 
PathId 总线的编号。 这是由IOCTL_SCSI_GET_ADDRESS控制代码返回的 SCSI_ADDRESS 结构的 PathId 成员的值。
TargetId 目标设备的编号。 这是由IOCTL_SCSI_GET_ADDRESS控制代码返回的 SCSI_ADDRESS 结构的 TargetId 成员的值。
LunId LUN 的编号。 这是由IOCTL_SCSI_GET_ADDRESS控制代码返回的 SCSI_ADDRESS 结构的 Lun 成员的值。
 

下表包含位置路径的示例。

总线类型 示例位置路径
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)

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
标头 vds.h

另请参阅

IVdsDisk3::GetProperties2

VDS_DISK_OFFLINE_REASON

VDS_PARTITION_INFO_GPT

VDS_PARTITION_INFO_MBR