MSFT_Disk 类
表示 Windows 磁盘。
MSFT_Disk对象模型 Windows 操作系统的磁盘设备概念。 该磁盘可以直接附加到计算机系统,或者它可能是通过使用存储管理提供程序向系统公开的虚拟磁盘。
以下语法由托管对象格式 (MOF) 代码简化而来。
语法
class MSFT_Disk : MSFT_StorageObject
{
String Path;
String Location;
String FriendlyName;
String UniqueId;
UInt16 UniqueIdFormat;
UInt32 Number;
String SerialNumber;
String FirmwareVersion;
String Manufacturer;
String Model;
UInt64 Size;
UInt64 AllocatedSize;
UInt32 LogicalSectorSize;
UInt32 PhysicalSectorSize;
UInt64 LargestFreeExtent;
UInt32 NumberOfPartitions;
UInt16 ProvisioningType;
UInt16 OperationalStatus;
UInt16 HealthStatus;
UInt16 BusType;
UInt16 PartitionStyle;
UInt32 Signature;
String Guid;
Boolean IsOffline;
UInt16 OfflineReason;
Boolean IsReadOnly;
Boolean IsSystem;
Boolean IsClustered;
Boolean IsBoot;
Boolean BootFromDisk;
};
成员
MSFT_Disk 类具有以下类型的成员:
方法
MSFT_Disk类具有这些方法。
方法 | 说明 |
---|---|
清除 | 删除分区信息并取消初始化磁盘,并将其返回到 RAW 状态。 |
ConvertStyle | 转换已初始化磁盘的分区样式。 |
CreatePartition | 在磁盘上创建分区。 |
初始化 | 使用特定分区样式初始化 RAW 磁盘。 |
Offline | 使磁盘脱机。 |
联机 | 使磁盘联机。 |
“刷新” | 刷新缓存的磁盘布局信息。 |
SetAttributes | 设置磁盘的属性和属性。 |
属性
MSFT_Disk类具有以下属性。
AllocatedSize
数据类型:UInt64
访问类型:只读
磁盘上当前使用的空间量(以字节为单位)。
BootFromDisk
数据类型: 布尔值
访问类型:只读
如果计算机配置为从此磁盘启动,则为 TRUE 。 在具有 BIOS 固件的计算机上,这是固件在启动时检测到的第一个磁盘。 在使用 EFI 固件的计算机上,这是包含 EFI 系统分区(ESP)的磁盘。 如果没有磁盘,或者存在具有 ESP 分区的多个磁盘,则不会为任何磁盘设置此属性。
BusType
数据类型:UInt16
访问类型:只读
磁盘使用的 I/O 总线类型。
值 | 含义 |
---|---|
未知 0 | 总线类型未知。 |
SCSI 1 | SCSI |
ATAPI 2 | ATAPI |
ATA 3 | ATA |
1394 4 | IEEE 1394 |
SSA 5 | SSA |
光纤通道 6 | 光纤通道 |
USB 7 | USB |
RAID 8 | RAID |
iSCSI 9 | iSCSI |
SAS 10 | 串行连接 SCSI (SAS) |
SATA 11 | 串行 ATA (SATA) |
SD 12 | 安全数字 (SD) |
MMC 13 | 多媒体卡 (MMC) |
虚拟 14 | 保留此值供系统使用。 |
文件支持的虚拟 15 | 文件支持的虚拟 |
存储空间 16 | 存储空间 |
NVMe 17 | NVMe |
FirmwareVersion
数据类型: 字符串
访问类型:只读
磁盘固件版本的字符串表示形式。
FriendlyName
数据类型: 字符串
访问类型:只读
限定符:Required
一个用户友好的显示型字符串,用于标识磁盘。
Guid
数据类型: 字符串
访问类型:只读
如果 PartitionStyle 为 GPT,则此属性包含磁盘的 GUID。 对于所有其他磁盘类型,此属性将为 NULL。
HealthStatus
数据类型:UInt16
访问类型:只读
磁盘设备的运行状况。
值 | 含义 |
---|---|
运行状况 0 | 磁盘正常运行。 |
警告 1 | 磁盘仍在运行,但检测到需要管理员干预的错误或问题。 |
运行不正常 2 | 由于错误或故障,卷无法正常运行。 卷需要管理员立即注意。 |
IsBoot
数据类型: 布尔值
访问类型:只读
如果磁盘包含启动分区,则为 TRUE 。
IsClustered
数据类型:布尔
访问类型:只读
如果在群集环境中使用磁盘,则为 TRUE ; 否则为 FALSE 。
IsOffline
数据类型: 布尔值
访问类型:只读
如果磁盘处于脱机状态,则为 TRUE ; 否则为 FALSE 。
IsReadOnly
数据类型:布尔
访问类型:只读
如果磁盘为只读,则为 TRUE ; 如果磁盘为读/写,则为 FALSE 。
IsSystem
数据类型: 布尔值
访问类型:只读
如果此磁盘包含系统分区,则为 TRUE ; 否则为 FALSE 。
LargestFreeExtent
数据类型:UInt64
访问类型:只读
限定符: 单位 (字节)
磁盘上最大的连续可用空间块。 这也是可以在磁盘上创建的分区的最大大小。
位置
数据类型: 字符串
访问类型:只读
包含磁盘的 PnP 位置路径的字符串。 此字符串的格式取决于总线类型。 如果总线类型为 SCSI、SAS 或 PCI RAID,则格式为 AdapterPnpLocationPath#BusType(PPathId TTargetIdLLunId)。 如果总线类型为 IDE、ATA、PATA 或 SATA,则格式为 AdapterPnpLocationPath#BusType(CPathId TTargetIdLLunId)。 有关列出此字符串部分的表,请参阅以下“备注”部分。
注意
对于 Hyper-V 和 VHD 映像,此属性为 NULL,因为虚拟控制器不返回位置路径。
有关此属性的详细信息,请参阅以下“备注”部分。
LogicalSectorSize
数据类型: UInt32
访问类型:只读
限定符: 单位 (字节)
磁盘的逻辑扇区大小(以字节为单位)。 例如,4K 本机磁盘将报告 4096,而 512 模拟磁盘将报告 512。
制造商
数据类型: 字符串
访问类型:只读
磁盘硬件制造商的字符串表示形式。
型号
数据类型: 字符串
访问类型:只读
磁盘型号的字符串表示形式。
数字
数据类型: UInt32
访问类型:只读
磁盘的操作系统编号。 磁盘 0 通常是启动设备。 在重启时,磁盘编号不一定保持不变。
NumberOfPartitions
数据类型: UInt32
访问类型:只读
在磁盘上创建的分区数。
OfflineReason
数据类型:UInt16
访问类型:只读
如果 IsOffline 为 TRUE,则此属性包含磁盘脱机的原因。
取下列值之一。
值 | 含义 |
---|---|
策略 1 | 用户请求磁盘脱机。 |
冗余路径 2 | 磁盘用于多路径 I/O。 |
快照 3 | 磁盘是快照磁盘。 |
碰撞 4 | 存在与另一个磁盘的签名或标识符冲突。 |
资源耗尽 5 | 资源不足,无法使磁盘联机。 |
严重写入失败 6 | 磁盘上出现严重写入失败。 |
需要 数据完整性扫描 7 | 需要数据完整性扫描。 |
OperationalStatus
数据类型:UInt16
访问类型:只读
磁盘设备的运行状态。
值 | 含义 |
---|---|
未知 0 | 运行状态未知。 |
其他 1 | 通过设置 OtherOperationalStatusDescription 属性,指定了特定于供应商的 OperationalStatus。 |
OK 2 | 磁盘正在响应命令,并且处于正常操作状态。 |
已降级 3 | 磁盘正在响应命令,但未处于最佳运行状态。 |
已强调 4 | 磁盘正常运行,但需要注意。 例如,磁盘可能过载或过热。 |
预计故障 5 | 磁盘正常运行,但在不久的将来可能会发生故障。 |
错误 6 | 发生错误。 |
不可恢复错误 7 | 发生了不可恢复的错误。 |
正在启动 8 | 磁盘正在启动。 |
正在停止 9 | 磁盘正在停止。 |
已停止 10 | 磁盘已以干净有序的方式停止或关闭。 |
服务中 11 | 正在配置、维护、清理或管理磁盘。 |
无联系人 12 | 存储提供程序了解磁盘,但从未能够与磁盘建立通信。 |
通信中断 13 | 存储提供程序了解磁盘,并在过去成功联系了磁盘,但磁盘当前无法访问。 |
已中止 14 | 类似于 “已停止”,但磁盘突然停止,可能需要配置或维护。 |
暂停活动 15 | 磁盘可访问,但它处于非活动状态。 |
支持实体出错 16 | 此状态值不一定表示磁盘出现问题,但它确实指示磁盘依赖的另一个设备或连接可能需要注意。 |
已完成 17 | 磁盘已完成操作。 此状态值应与“确定”、“错误”或“降级”结合使用,具体取决于操作的结果。 |
联机 0xD010 | 在基于 Windows 的存储子系统中,这表示对象处于联机状态。 |
未准备好 0xD011 | 在基于 Windows 的存储子系统中,这表示对象尚未就绪。 |
无媒体 0xD012 | 在基于 Windows 的存储子系统中,这表示对象不存在媒体。 |
脱机 0xD013 | 在基于 Windows 的存储子系统中,这表示对象处于脱机状态。 |
失败0xD014 | 在基于 Windows 的存储子系统中,这表示对象处于失败状态。 |
PartitionStyle
数据类型:UInt16
访问类型:只读
限定符:Required
磁盘使用的分区样式。
值 | 含义 |
---|---|
未知 0 | 分区样式未知。 |
MBR 1 | 主启动记录 (MBR) |
GPT 2 | GUID 分区表 (GPT) |
Path
数据类型: 字符串
访问类型:只读
限定符:Required
可用于打开磁盘设备的操作系统句柄的路径。
PhysicalSectorSize
数据类型: UInt32
访问类型:只读
限定符: 单位 (字节)
磁盘的物理扇区大小(以字节为单位)。 例如,4K 本机磁盘和 512 个模拟磁盘都将报告 4096。
ProvisioningType
数据类型:UInt16
访问类型:只读
磁盘设备的预配类型。
值 | 含义 |
---|---|
未知 0 | 未指定预配方案。 |
瘦 1 | 磁盘的存储是按需分配的。 |
固定 2 | 创建磁盘时会分配存储。 |
SerialNumber
数据类型: 字符串
访问类型:只读
磁盘序列号的字符串表示形式。
Signature
数据类型: UInt32
访问类型:只读
如果 PartitionStyle 为 MBR,则此属性包含 MBR 分区签名。 对于所有其他磁盘类型,此属性将为 NULL。
大小
数据类型:UInt64
访问类型:只读
磁盘的总大小(以字节为单位)。
UniqueId
数据类型: 字符串
访问类型:只读
磁盘标识符。 这包含 VPD 页0x83唯一标识此磁盘的信息。 接受以下类型(优先顺序):
- 8 (SCSI 名称字符串)
- 3 (FCPH 名称)
- 2 (EUI64)
- 1 (供应商 ID)
- 0 (特定于供应商)
如果磁盘是公开的虚拟磁盘, 则 UniqueId 用于映射两个对象之间的关联。
UniqueIdFormat
数据类型:UInt16
访问类型:只读
限定符: 值 (“供应商特定”、“供应商 ID”、“EUI64”、“FCPH 名称”、“SCSI 名称字符串”)、 ValueMap (“0”、“1”、“2”、“3”、“8”)
磁盘标识符的格式。 此属性包含用于设置 UniqueId 属性的 VPD 页0x83描述符类型。
注解
下表列出了 Location 属性中使用的位置路径字符串的各个部分。
位置路径部件 | 说明 |
---|---|
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 10 开始:MSFT_Disk派生自MSFT_StorageObject。 它现在继承了 ObjectId 属性,该属性以前是MSFT_Disk的属性。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
命名空间 | Root\Microsoft\Windows\Storage |
MOF | Storagewmi.mof |