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。
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) 。 有关列出此字符串部分的表,请参阅以下“备注”部分。
注解
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 |