DISK_PERFORMANCE结构与 IOCTL_DISK_PERFORMANCE 请求结合使用,以收集摘要磁盘统计信息,以测量磁盘性能。
语法
typedef struct _DISK_PERFORMANCE {
LARGE_INTEGER BytesRead;
LARGE_INTEGER BytesWritten;
LARGE_INTEGER ReadTime;
LARGE_INTEGER WriteTime;
LARGE_INTEGER IdleTime;
ULONG ReadCount;
ULONG WriteCount;
ULONG QueueDepth;
ULONG SplitCount;
LARGE_INTEGER QueryTime;
ULONG StorageDeviceNumber;
WCHAR StorageManagerName[8];
} DISK_PERFORMANCE, *PDISK_PERFORMANCE;
成员
BytesRead
包含自启用性能计数器以来从磁盘读取的累积字节计数。
BytesWritten
包含自启用性能计数器以来写入磁盘的累积字节计数。
ReadTime
包含一个累积时间(以 100 纳秒的增量表示)在磁盘读取上花费的时间,因为启用了性能计数器。
WriteTime
包含一个累积时间(以 100 纳秒的增量表示)在磁盘读取上花费的时间,因为启用了性能计数器。
IdleTime
包含以 100 纳秒为单位的累积时间,因为启用了没有磁盘活动的性能计数器。
ReadCount
包含自启用性能计数器以来读取的磁盘访问数。
WriteCount
包含自启用性能计数器以来写入的磁盘访问数。
QueueDepth
包含执行性能统计信息查询时排队磁盘 I/O 请求数的快照。
SplitCount
包含通过关联的 IRP 访问数,因为启用了性能计数器。
QueryTime
包含一个时间戳,指示查询发生时的系统时间。 系统时间是自 1601 年 1 月 1 日起的 100 纳秒间隔计数。 系统时间通常大约每 10 毫秒更新一次。 有关系统时间的详细信息,请参阅KeQuerySystemTime。
StorageDeviceNumber
包含分配给特定存储类型中每个磁盘或卷的唯一数字。 存储类型为 disk.sys、ftdisk.sys和 dmio.sys。
StorageManagerName[8]
包含一个 8 个字符的字符串,指示哪个设备驱动程序提供了性能统计信息。
在 Windows 2000 中,这可以是驱动程序 logidisk.sys 的“LogiDisk”,也可以是驱动程序 physdisk.sys的“PhysDisk”。 这些驱动程序分别收集设备和物理磁盘的性能统计信息。
在 Windows XP 及更高版本的作系统中,这可以是以下三个字符串之一:驱动程序 ftdisk.sys的“FTDISK”、“驱动程序 dmio.sys的 DMIO”或驱动程序 partmgr.sys的“PARTMGR”。 这三个驱动程序分别收集基本磁盘卷、动态磁盘卷和物理磁盘的性能统计信息。 请注意,这些字符串是包含空白填充的 8 个字符区分大小写的字符串。 例如,对于字符串“FTDISK”,StorageManagerName 字符数组应包含两个尾随空白(“FTDISK”),在字符串“DMIO”的情况下,数组应包含四个尾随空白(“DMIO”)。
言论
每当禁用性能计数器时,计数将停止,但计数器不会重置,因此分配给结构成员的累积值可能会反映多个启用和禁用计数器的磁盘活动。
要求
要求 | 价值 |
---|---|
标头 | ntdddisk.h (包括 Ntdddisk.h) |