Я хочу добавить сообщение о событии с критический введите в журнал событий Windows, используя ReportEvent()
, но согласно документации разрешены только следующие типы:
EVENTLOG_SUCCESS
EVENTLOG_ERROR_TYPE
EVENTLOG_WARNING_TYPE
EVENTLOG_INFORMATION_TYPE
EVENTLOG_AUDIT_SUCCESS
EVENTLOG_AUDIT_FAILURE
Так как мне добавить EVENTLOG_CRITICAL
? Как критические сообщения можно увидеть в средстве просмотра событий Windows.
Как ReportEvent()
В документации сказано, что она не поддерживает «критические» сообщения. Вы ничего не можете сделать или добавить, чтобы изменить это.
Тем не мение, ReportEvent()
это не единственный или даже предпочтительный способ записи сообщений в журнал событий Windows. MSDN заявляет следующее в документации для API регистрации событий (который ReportEvent()
это часть):
Заметка API регистрации событий был разработан для приложений, работающих в операционной системе Windows Server 2003, Windows XP или Windows 2000. В Windows Vista инфраструктура регистрации событий была переработана. Приложения, предназначенные для работы в Windows Vista или более поздних операционных системах, должны использовать Журнал событий Windows регистрировать события.
В документации для новее API журнала событий, раздел на Написание манифеста инструментовки имеет подраздел о Определение уровней серьезности, который показывает Win:Critical
является одним из «обычно используемых уровней серьезности».
Вам придется заменить существующий вызов на ReportEvent()
использовать один из Функции отслеживания событий вместо (EventWrite()
, EventWriteEx()
, EventWriteString()
, TraceEvent()
, так далее).
Других решений пока нет …