PdhExpandWildCardPath возвращает слишком много путей - PullRequest
0 голосов
/ 25 февраля 2011

Я пытаюсь получить загрузку ЦП каждого из (до 200) потоков в моем приложении (Delphi XE). Чтобы подготовиться к этому, я передаю PdhExpandWildCardPath строку '\Thread(myappname/*)\% Processor Time'. Однако (в Win7 / 64) буфер, возвращаемый из этой функции, возвращает строку для каждого потока, работающего в системе, другими словами, он, кажется, рассматривал ввод, как если бы он был '\Thread(*/*)\% Processor Time'. Это было неожиданно. То же самое происходит, когда я впоследствии раскрываю строку, чтобы получить «ID Thread».

Очевидно, что я могу отфильтровать получающиеся строки по имени приложения и добавить только те счетчики, которые мне нужны, но это требует многих сотен проверок подстрок. Я неправильно истолковал, как работают символы подстановки?

1 Ответ

0 голосов
/ 14 декабря 2015

Поздно, но я попал в ту же стену, может, кому-то еще это нужно:

Вот оно: '\Thread(myappname*)\% Processor Time'

Особенно полезно, если для ProcessNameFormat установлено значение 2, а для ThreadNameFormat установлено значение 2 в 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance'

Для ProcessNameFormat = 2 -> ссылка , то же самое относится и к ThreadNameFormat, хотя я не смог найти никакой документации.

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