Я пытаюсь добавить счетчики производительности и пользовательские события в часть программного обеспечения, чтобы я мог просматривать их с помощью программ Windows Performance Toolkit, таких как XPerf и GPUView. Я собираюсь воздержаться, используя все свои силы сдержанности, от разглагольствования о состоянии документации к программному обеспечению и времени, которое я сейчас потратил впустую, пытаясь выудить подсказки из Интернета. Я собираюсь описать, как я оказался там, где я сейчас нахожусь, на случай, если это будет полезно другим заблудшим душам.
Пока я понял, что мне нужно написать манифест событий для моих счетчиков производительности и событий. Вы можете сделать это вручную или с помощью инструмента под названием «ecmangen.exe». Документация к этой программе дает хорошее пошаговое руководство по созданию манифестов событий, но не объясняет, как интегрировать их в ваш код.
Следующим шагом, насколько я понимаю, является использование двух загадочных приложений командной строки «MC.exe» и «CTRPP.exe». Похоже, что они генерируют заголовки C или C#, исходные файлы и файлы ресурсов для добавления инструментов событий и счетчиков в ваш код соответственно. Затем вам нужно создать свой код (посмотрите примеры в «C:\Program Files\Microsoft SDK\Windows\v7.1\Samples\winbase\Eventing»), а затем мы подойдем к тому, на чем я сейчас застрял: правильное использование следующего зашифрованного инструмента 'wevtutil.exe'
Этому инструменту нужны две вещи: двоичный файл (exe или DLL), который вы скомпилировали с этими ресурсами, и файл манифеста, который вы использовали для создания этих ресурсов. У меня проблема в том, что он очень придирчив к тому, где находится двоичный файл, и я не смог определить форму этой придирчивости. Заклинания и жертвоприношения козла не дали результатов.
Если у меня есть путь, определенный в поле «resourceFileName» тега «provider» в файле манифеста, например «c:\MYDIR\TEd.exe», тогда все в порядке. Однако, если я помещаю тот же exe-файл в другую папку (неудачной была C:\tw\TEd.exe), он жалуется.
Выдается сообщение об ошибке 'Предупреждение: ресурсы Publisher TEd-Event-Provider недоступны', но больше нет объяснений, почему или где он пытался искать.
Итак, я собираюсь добавить инструментарий неправильным образом, есть ли уже руководство, объясняющее все подводные камни и какова природа странной избирательности wevtutil.exe по отношению к именам каталогов.
Заранее спасибо,
Тим.