Поделиться через


Функция ReportEventW (winbase.h)

Записывает запись в конце указанного журнала событий.

Синтаксис

BOOL ReportEventW(
  [in] HANDLE  hEventLog,
  [in] WORD    wType,
  [in] WORD    wCategory,
  [in] DWORD   dwEventID,
  [in] PSID    lpUserSid,
  [in] WORD    wNumStrings,
  [in] DWORD   dwDataSize,
  [in] LPCWSTR *lpStrings,
  [in] LPVOID  lpRawData
);

Параметры

[in] hEventLog

Дескриптор журнала событий. Функция RegisterEventSource возвращает этот дескриптор.

В Windows XP с пакетом обновления 2 (SP2) этот параметр не может быть дескриптором для журнала безопасности . Чтобы записать событие в журнал безопасности , используйте функцию AuthzReportSecurityEvent .

[in] wType

Тип события для записи в журнал. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
EVENTLOG_SUCCESS
0x0000
Информационное событие
EVENTLOG_AUDIT_FAILURE
0x0010
Событие аудита сбоя
EVENTLOG_AUDIT_SUCCESS
0x0008
Событие успешного аудита
EVENTLOG_ERROR_TYPE
0x0001
Событие ошибки
EVENTLOG_INFORMATION_TYPE
0x0004
Информационное событие
EVENTLOG_WARNING_TYPE
0x0002
Событие предупреждения
 

Дополнительные сведения о типах событий см. в разделе Типы событий.

[in] wCategory

Категория событий. Это сведения, относящиеся к источнику; категория может иметь любое значение. Дополнительные сведения см. в разделе Категории событий.

[in] dwEventID

Идентификатор события. Идентификатор события указывает запись в файле сообщения, связанном с источником события. Дополнительные сведения см. в разделе Идентификаторы событий.

[in] lpUserSid

Указатель на идентификатор безопасности текущего пользователя. Этот параметр может иметь значение NULL , если идентификатор безопасности не требуется.

[in] wNumStrings

Количество строк вставки в массиве, на который указывает параметр lpStrings . Значение, равное нулю, указывает, что строк нет.

[in] dwDataSize

Количество байтов необработанных (двоичных) данных для конкретного события для записи в журнал. Если этот параметр равен нулю, данные для конкретных событий отсутствуют.

[in] lpStrings

Указатель на буфер, содержащий массив строк, завершаемых значением NULL, которые объединяются в сообщение перед Просмотр событий отображает строку для пользователя. Этот параметр должен быть допустимым указателем (или значением NULL), даже если wNumStrings равно нулю. Длина каждой строки ограничена 31 839 символами.

До Windows Vista: Каждая строка ограничена 32 КБ символами.

[in] lpRawData

Указатель на буфер, содержащий двоичные данные. Этот параметр должен быть допустимым указателем (или значением NULL), даже если параметр dwDataSize равен нулю.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение не равно нулю, указывающее, что запись была записана в журнал.

Если функция выполняется неудачно, возвращается нулевое значение. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError, который возвращает один из следующих расширенных кодов ошибок.

Код ошибки Значение
ERROR_INVALID_PARAMETER
Один из параметров недопустим.

Эта ошибка возвращается в Windows Server 2003, если регистрируются слишком большие данные сообщения. Эта ошибка возвращается сервером RPC в Windows Server 2003, если параметр dwDataSize больше 261 991 (0x3ff67).

ERROR_NOT_ENOUGH_MEMORY
Недостаточно ресурсов памяти для завершения операции.
RPC_S_INVALID_BOUND
Недопустимые границы массива.

Эта ошибка возвращается, если регистрируются слишком большие данные сообщения. В Windows Vista и более поздних версиях эта ошибка возвращается, если параметр dwDataSize превышает 61 440 (0xf000).

RPC_X_BAD_STUB_DATA
Заглушка получила неверные данные.

Эта ошибка возвращается в Windows XP, если регистрируются слишком большие данные сообщения. Эта ошибка возвращается сервером RPC в Windows XP, если параметр dwDataSize больше 262 143 (0x3ffff).

Другое
Используйте FormatMessage , чтобы получить строку сообщения для возвращенной ошибки.

Комментарии

Эта функция используется для регистрации события. Запись записывается в конец настроенного журнала для источника, определяемого параметром hEventLog . Функция ReportEvent добавляет время, длину записи и смещения перед сохранением записи в журнале. Чтобы включить функцию для добавления имени пользователя, необходимо указать идентификатор безопасности пользователя в параметре lpUserSid .

Существуют различные ограничения на размер данных сообщения, которые могут быть зарегистрированы в зависимости от версии Windows, используемой как клиентом, на котором запущено приложение, так и сервером, на котором зарегистрировано сообщение. Сервер определяется параметром lpUNCServerName , передаваемым в функцию RegisterEventSource . При превышении ограничения размера, зависящее от версии Windows, возвращаются различные ошибки.

Если строка, записываемая в журнал, содержит %n, где n — целочисленное значение (например, %1), средство просмотра событий рассматривает ее как строку вставки. Так как IPv6-адрес может содержать эту последовательность символов, необходимо указать описатель формата (! S!) для регистрации сообщения о событии, содержащего IPv6-адрес. Этот описатель указывает коду форматирования использовать строку буквально и не выполнять никаких дальнейших расширений (например, "мой IPv6-адрес: %1! S!").

Примеры

Пример см. в разделе Отчеты о событии.

Примечание

Заголовок winbase.h определяет ReportEvent как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

ClearEventLog

CloseEventLog

Формат файла журнала событий

Функции ведения журнала событий

OpenEventLog

ReadEventLog

RegisterEventSource