Программно получать статистику по дисковым процессорам в Windows? - PullRequest
6 голосов
/ 28 октября 2009

Я хотел бы отобразить список процессов (Windows, C ++) и сколько они читают и пишут с диска в КБ / с.

Монитор ресурсов в Windows 7 имеет возможность, поэтому я должен иметь возможность сделать то же самое.

Однако мне не удалось найти соответствующий API-вызов или найти что-либо в счетчиках perfmon. Кто-нибудь может указать мне направление?

Ответы [ 2 ]

11 голосов
/ 28 октября 2009

Вы можете позвонить GetProcessIoCounters , чтобы получить общие данные дискового ввода-вывода для каждого процесса - вам нужно будет самостоятельно отслеживать дельты и переходить на основанную на времени скорость.

Этот API сообщит вам общее количество операций ввода-вывода, а также общее количество байтов.

3 голосов
/ 02 ноября 2009

WMI может сделать это, если вы периодически снимаете его, чтобы получить дифференциальную статистику за некоторый «недавний» отрезок времени. В этом посте представлено необычно смешанное решение: VBScript читает информацию из WMI и Perl постоянно представляет информацию в консоли Windows. Несмотря на странное сочетание языков, я думаю, что это хороший пример того, как получить ту информацию, которая вам требуется (конечно, вполне возможно перекодировать все это в C ++).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...