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


Структура EVENTLOGRECORD (winnt.h)

Содержит сведения о записи события, возвращаемой функцией ReadEventLog .

Синтаксис

typedef struct _EVENTLOGRECORD {
  DWORD Length;
  DWORD Reserved;
  DWORD RecordNumber;
  DWORD TimeGenerated;
  DWORD TimeWritten;
  DWORD EventID;
  WORD  EventType;
  WORD  NumStrings;
  WORD  EventCategory;
  WORD  ReservedFlags;
  DWORD ClosingRecordNumber;
  DWORD StringOffset;
  DWORD UserSidLength;
  DWORD UserSidOffset;
  DWORD DataLength;
  DWORD DataOffset;
} EVENTLOGRECORD, *PEVENTLOGRECORD;

Члены

Length

Размер этой записи события в байтах. Обратите внимание, что это значение хранится на обоих концах записи, чтобы упростить перемещение вперед или назад по журналу. Длина включает все байты панели, вставленные в конце записи для выравнивания DWORD .

Reserved

Значение DWORD, которое всегда имеет значение ELF_LOG_SIGNATURE (значение равно 0x654c664c), то есть ASCII для eLfL.

RecordNumber

Номер записи. Это значение можно использовать с флагом EVENTLOG_SEEK_READ в функции ReadEventLog , чтобы начать чтение указанной записи. Дополнительные сведения см. в разделе Записи журнала событий.

TimeGenerated

Время отправки этой записи. Это время измеряется в количестве секунд, прошедших с 00:00:00 1 января 1970 года, Универсальное координированное время.

TimeWritten

Время, когда эта запись была получена службой для записи в журнал. Это время измеряется в количестве секунд, прошедших с 00:00:00 1 января 1970 года, Универсальное координированное время.

EventID

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

EventType

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

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

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

NumStrings

Количество строк, присутствующих в журнале (в позиции, указанной StringOffset). Эти строки объединяются с сообщением перед отображением для пользователя.

EventCategory

Категория для этого события. Значение этого значения зависит от источника события. Дополнительные сведения см. в разделе Категории событий.

ReservedFlags

Зарезервировано.

ClosingRecordNumber

Зарезервировано.

StringOffset

Смещение строк описания в этой записи журнала событий.

UserSidLength

Размер элемента UserSid в байтах. Это значение может быть равно нулю, если идентификатор безопасности не указан.

UserSidOffset

Смещение идентификатора безопасности (SID) в этой записи журнала событий. Чтобы получить имя пользователя для этого идентификатора безопасности, используйте функцию LookupAccountSid .

DataLength

Размер данных, зависящих от события (в позиции, указанной DataOffset), в байтах.

DataOffset

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

Комментарии

За определенными элементами следуют строки замены для сообщения, определяемого идентификатором события, двоичные сведения, некоторые байты панели, чтобы убедиться, что полная запись находится на границе DWORD , и, наконец, длина записи журнала снова. Так как строки и двоичные данные могут иметь любую длину, для ссылки на них не определены члены структуры. Объявление этой структуры в Winnt.h описывает эти элементы следующим образом:

    // WCHAR SourceName[]
    // WCHAR Computername[]
    // SID   UserSid
    // WCHAR Strings[]
    // BYTE  Data[]
    // CHAR  Pad[]
    // DWORD Length;

Имя источника — это строка переменной длины, указывающая имя источника событий. Имя компьютера — это имя компьютера, создающего событие. За ним можно следовать с несколькими байтами заполнения, чтобы идентификатор безопасности пользователя был выровнен по границе DWORD . Идентификатор безопасности пользователя идентифицирует активного пользователя на момент регистрации этого события. Если значение UserSidLength равно нулю, это поле может быть пустым.

Идентификатор события вместе с именем источника и идентификатором языка идентифицирует строку, которая описывает событие более подробно. Строки используются в качестве строк замены и объединяются в строку сообщения для создания полного сообщения. Строки сообщений содержатся в файле сообщений, указанном в исходной записи в реестре. Чтобы получить соответствующую строку сообщения из файла сообщения, загрузите файл сообщения с помощью функции LoadLibrary и используйте функцию FormatMessage .

Двоичные сведения — это сведения, относящиеся к событию. Это может быть содержимое регистров процессора, когда драйвер устройства получил ошибку, дамп недопустимого пакета, полученного из сети, дамп всех структур в программе (когда область данных была обнаружена как поврежденная) и т. д. Эти сведения должны быть полезны для записи драйвера устройства или приложения при отслеживании ошибок или несанкционированных прерываний в приложении.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть winnt.h (включая Windows.h)

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

LookupAccountSid

ReadEventLog