Я хотел бы как можно эффективнее собирать данные с нескольких серверов удаленных рабочих столов. Я знаю, что PerfMon является потребителем событий ETW, которые публикуются через поставщик ETW.
Мой вопрос: какой поставщик ETW предоставляет статистику, которую PerMon использует из категории счетчиков производительности «Сеть RemoteFX»?
Спасибо заранее за ваше время...
Счетчики производительности, как правило, не используют трассировку событий Windows как часть реализации. Возможно, что какой-то компонент может вызвать событие ETW одновременно с увеличением счетчика производительности, но в большинстве случаев нет способа получить значение счетчика производительности через ETW. (Обратите внимание, что даже если бы вы могли, я не уверен, как это поможет, поскольку нет поддержки для сбора событий ETW с удаленных компьютеров.)
В статье MSDN есть ошибка документации, где, похоже, редактор перевел одно слово «событие» в «Отслеживание событий для Windows». Этот перевод был неверным, поскольку слово предназначалось для обозначения события типа CreateEvent. Счетчики производительности V2 используют события (CreateEvent) как часть базовой реализации при выполнении сбора.
PDH API - это основной API для доступа к счетчикам производительности. Если это недостаточно эффективно, вы можете изучить некоторые новые API-интерфейсы для доступа к низкоуровневым счетчикам производительности только для V2. Они обходят PDH API для более прямого доступа к счетчикам производительности V2. Их несколько сложнее использовать, но если вы считаете, что PDH мешает вашей работе, вы можете их использовать.
API-интерфейсы низкоуровневого доступа V2 описаны здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/aa373078(v=vs.85).aspxпосмотрите на функции, которые начинаются с "Perf". Они являются новыми в версии perflib.h SDK для Windows 10.0.14393, но работают вплоть до Vista (раньше они были внутренними, теперь они общедоступные).