ETW как пережить перезагрузку

Используя C ++ / Win32 API, я сам создаю сеанс трассировки событий. Мое приложение должно поддерживать NT5, поэтому я не могу использовать более новые API.

Я использую флаги кругового режима и флаги реального времени.

У меня все работает, кроме одной ловушки, когда я перезагружаю машину, сеанс ETW не сохраняется, моя служба запускается и воссоздает сеанс ETW (так как перезагрузка стерла его), что приводит к перезаписи файла журнала.

В соответствии с MSDN я должен использовать «глобальный» регистратор на NT5, которого может быть только один, или «AutoLogger» на NT6, которого может быть много. Однако MSDN говорит:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363687(v=vs.85).aspx

Сеансы AutoLogger увеличивают время загрузки системы и должны быть
используется экономно. Сервисы, которые хотят получать информацию во время
Процесс загрузки должен рассмотреть возможность добавления логики контроллера к себе
использования сессии AutoLogger.

Звучит как излишнее за то, что я пытаюсь сделать. Действительно, мой сервис содержит саму логику «контроллера».

Так как же заставить ETW сохранить мой сеанс трассировки для следующей перезагрузки? Или, в качестве альтернативы, как заново создать сеанс ETW при следующей перезагрузке, не перезаписывая файл ETW, если он уже существует?

3

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]