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 类具有这些方法。

方法 说明
Clear 删除分区信息并取消初始化磁盘,使其返回到 RAW 状态。
ConvertStyle 转换已初始化磁盘的分区样式。
CreatePartition 在磁盘上创建分区。
初始化 使用特定分区样式初始化 RAW 磁盘。
脱机 让磁盘脱机。
联机 使磁盘联机。
Refresh 刷新缓存的磁盘布局信息。
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 File-Backed Virtual
存储空间 16 存储空间
NVMe 17 NVMe

FirmwareVersion

数据类型: 字符串

访问类型:只读

磁盘固件版本的字符串表示形式。

FriendlyName

数据类型: 字符串

访问类型:只读

限定符: 必需

一个用户友好的面向显示的字符串,用于标识磁盘。

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 (PPathIdTTargetIdLLunId) 。 如果总线类型为 IDE、ATA、PATA 或 SATA,则格式为 AdapterPnpLocationPath#BusType (CPathIdTTargetIdLLunId) 。 有关列出此字符串部分的表,请参阅以下“备注”部分。

注意

对于 Hyper-V 和 VHD 映像,此属性为 NULL,因为虚拟控制器不返回位置路径。

有关此属性的详细信息,请参阅以下“备注”部分。

LogicalSectorSize

数据类型: UInt32

访问类型:只读

限定符: 单位 (字节)

磁盘的逻辑扇区大小(以字节为单位)。 例如,4K 本机磁盘将报告 4096,而 512 仿真磁盘将报告 512。

Manufacturer

数据类型: 字符串

访问类型:只读

磁盘硬件制造商的字符串表示形式。

Model

数据类型: 字符串

访问类型:只读

磁盘型号的字符串表示形式。

数字

数据类型: UInt32

访问类型:只读

磁盘的操作系统编号。 磁盘 0 通常是启动设备。 磁盘编号在重启后不一定保持不变。

NumberOfPartitions

数据类型: UInt32

访问类型:只读

已在磁盘上创建的分区数。

OfflineReason

数据类型: UInt16

访问类型:只读

如果 IsOfflineTRUE,则此属性包含磁盘脱机的原因。

以下值之一。

“值” 含义
策略 1 用户请求磁盘脱机。
冗余路径 2 磁盘用于多路径 I/O。
快照 3 磁盘是快照磁盘。
碰撞 4 签名或标识符与其他磁盘冲突。
资源耗尽 5 资源不足,无法使磁盘联机。
严重写入失败 6 磁盘上出现严重写入失败。
需要数据完整性扫描 7 需要数据完整性扫描。

OperationalStatus

数据类型: UInt16

访问类型:只读

磁盘设备的运行状态。

含义
未知 0 操作状态未知。
其他 1 已通过设置 OtherOperationalStatusDescription 属性指定了特定于供应商的 OperationalStatus
确定 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

访问类型:只读

限定符: 必需

磁盘使用的分区样式。

含义
未知 0 分区样式未知。
MBR 1 主启动记录 (MBR)
GPT 2 GUID 分区表 (GPT)

路径

数据类型: 字符串

访问类型:只读

限定符: 必需

可用于打开磁盘设备的操作系统句柄的路径。

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