структура 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
Содержит snapshot количества запросов дискового ввода-вывода в очереди на момент выполнения запроса статистики производительности.
SplitCount
Содержит количество обращений к диску с помощью связанного IRP с момента включения счетчиков производительности.
QueryTime
Содержит метку времени, указывающую системное время на момент выполнения запроса. Системное время — это число 100-наносекундных интервалов с 1 января 1601 года. Системное время обычно обновляется примерно каждые 10 миллисекундах. Дополнительные сведения о системном времени см. в разделеKeQuerySystemTime.
StorageDeviceNumber
Содержит уникальный номер, присваиваемый каждому диску или тому для определенного типа хранилища. Типы хранения :disk.sys, ftdisk.sysи dmio.sys.
StorageManagerName[8]
Содержит строку из 8 символов, указывающую, какой драйвер устройства предоставил статистику производительности.
В Windows 2000 это может быть logiDisk для logidisk.sys драйвера или PhysDisk для драйвера physdisk.sys. Эти драйверы собирают статистику производительности для устройств и физических дисков соответственно.
В операционных системах Windows XP и более поздних версий это может быть любая из следующих трех строк: "FTDISK" для драйвера ftdisk.sys, "DMIO" для драйвера dmio.sysили "PARTMGR" для драйвера partmgr.sys. Эти три драйвера собирают статистику производительности для базовых томов дисков, томов динамических и физических дисков соответственно. Обратите внимание, что эти строки представляют собой строки с учетом регистра из 8 символов с пустой заливкой. Например, в случае строки "FTDISK" массив символов StorageManagerName должен содержать два конечных пробела ("FTDISK "), а в случае строки "DMIO" массив должен содержать четыре конечных пробела ("DMIO ").
Комментарии
Подсчет останавливается всякий раз, когда счетчики производительности отключены, но счетчики не сбрасываются, поэтому совокупные значения, назначенные членам структуры, могут потенциально отражать активность диска в нескольких включениях и отключениях счетчиков.
Требования
Требование | Значение |
---|---|
Заголовок | ntdddisk.h (включая Ntdddisk.h) |