DISK_PERFORMANCE 结构 (ntdddisk.h)

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 纳秒间隔计数。 系统时间通常大约每十毫秒更新一次。 有关系统时间的详细信息,请参阅KeQuerySystemTime

StorageDeviceNumber

包含分配给特定存储类型中每个磁盘或卷的唯一编号。 存储类型为 disk.sysftdisk.sysdmio.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”) 。

注解

每当禁用性能计数器时,计数就会停止,但计数器不会重置,因此分配给结构成员的累积值可能会反映多个启用和禁用计数器的磁盘活动。

要求

要求
Header ntdddisk.h (包括 Ntdddisk.h)

另请参阅

IOCTL_DISK_PERFORMANCE

IOCTL_DISK_PERFORMANCE_OFF