DISK_PERFORMANCE - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ntdddisk.h

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;
View the official Windows Driver Kit DDI reference
// winioctl.h

typedef struct _DISK_PERFORMANCE {
  LARGE_INTEGER BytesRead;
  LARGE_INTEGER BytesWritten;
  LARGE_INTEGER ReadTime;
  LARGE_INTEGER WriteTime;
  LARGE_INTEGER IdleTime;
  DWORD         ReadCount;
  DWORD         WriteCount;
  DWORD         QueueDepth;
  DWORD         SplitCount;
  LARGE_INTEGER QueryTime;
  DWORD         StorageDeviceNumber;
  WCHAR         StorageManagerName[8];
} DISK_PERFORMANCE, *PDISK_PERFORMANCE;
View the official Win32 API reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-ntdddisk-_disk_performance)

DISK_PERFORMANCE structure

Description

The DISK_PERFORMANCE structure is used in conjunction with the IOCTL_DISK_PERFORMANCE request to collect summary disk statistics for purposes of measuring disk performance.

Members

BytesRead

Contains a cumulative count of bytes read from the disk since the performance counters were enabled.

BytesWritten

Contains a cumulative count of bytes written to the disk since the performance counters were enabled.

ReadTime

Contains a cumulative time, expressed in increments of 100 nanoseconds, spent on disk reads since the performance counters were enabled.

WriteTime

Contains a cumulative time, expressed in increments of 100 nanoseconds, spent on disk reads since the performance counters were enabled.

IdleTime

Contains a cumulative time, expressed in increments of 100 nanoseconds, since the performance counters were enabled in which there was no disk activity.

ReadCount

Contains the number of disk accesses for reads since the performance counters were enabled.

WriteCount

Contains the number of disk accesses for writes since the performance counters were enabled.

QueueDepth

Contains a snapshot of the number of queued disk I/O requests at the time that the query for performance statistics was performed.

SplitCount

Contains the number of disk accesses by means of an associated IRP since the performance counters were enabled.

QueryTime

Contains a timestamp indicating the system time at the moment that the query took place. System time is a count of 100-nanosecond intervals since January 1, 1601. System time is typically updated approximately every ten milliseconds. For more information about system time, seeKeQuerySystemTime.

StorageDeviceNumber

Contains a unique number assigned to every disk or volume across a particular storage type. The storage types are disk.sys, ftdisk.sys, and dmio.sys.

StorageManagerName

Contains an 8-character string that indicates which device driver provided the performance statistics.

Remarks

Counting halts whenever the performance counters are disabled, but the counters are not reset, so the cumulative values assigned to the structure members might potentially reflect disk activity across several enablings and disablings of the counters.

See also

IOCTL_DISK_PERFORMANCE

IOCTL_DISK_PERFORMANCE_OFF


Win32 API reference (ns-winioctl-disk_performance)

DISK_PERFORMANCE structure

Description

Provides disk performance information. It is used by the IOCTL_DISK_PERFORMANCE control code.

Members

BytesRead

The number of bytes read.

BytesWritten

The number of bytes written.

ReadTime

The time it takes to complete a read.

WriteTime

The time it takes to complete a write.

IdleTime

The idle time.

ReadCount

The number of read operations.

WriteCount

The number of write operations.

QueueDepth

The depth of the queue.

SplitCount

The cumulative count of I/Os that are associated I/Os.

An associated I/O is a fragmented I/O, where multiple I/Os to a disk are required to fulfill the original logical I/O request. The most common example of this scenario is a file that is fragmented on a disk. The multiple I/Os are counted as split I/O counts.

QueryTime

The system time stamp when a query for this structure is returned.

Use this member to synchronize between the file system driver and a caller.

StorageDeviceNumber

The unique number for a device that identifies it to the storage manager that is indicated in the StorageManagerName member.

StorageManagerName

The name of the storage manager that controls this device.

Examples of storage managers are "PhysDisk," "FTDISK," and "DMIO".

See also

IOCTL_DISK_PERFORMANCE