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

始终设置为 ELF_LOG_SIGNATURE 的 DWORD 值, (该值0x654c664c) ,即 eLfL 的 ASCII。

RecordNumber

记录的编号。 此值可与 ReadEventLog 函数中的 EVENTLOG_SEEK_READ 标志一起使用,以开始读取指定的记录。 有关详细信息,请参阅 事件日志

TimeGenerated

提交此条目的时间。 此时间以自 1970 年 1 月 1 日世界协调时间 00:00:00 以来经过的秒数来度量。

TimeWritten

服务收到要写入日志的条目的时间。 此时间以自 1970 年 1 月 1 日世界协调时间 00:00:00 以来经过的秒数来度量。

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) (安全标识符的偏移量。 若要获取此 SID 的用户名,请使用 LookupAccountSid 函数。

DataLength

事件特定数据的大小 (DataOffset) 指示的位置(以字节为单位)。

DataOffset

此事件日志记录中特定于事件的信息的偏移量(以字节为单位)。 此信息可能是特定信息, (磁盘驱动程序可能会记录重试次数(例如) ),后跟特定于要记录的事件和生成条目的源的二进制信息。

注解

定义的成员后跟由事件标识符标识的消息的替换字符串、二进制信息、一些用于确保完整条目位于 DWORD 边界上的填充字节,最后是日志条目的长度。 由于字符串和二进制信息可以是任意长度,因此没有定义任何结构成员来引用它们。 Winnt.h 中此结构的声明描述这些成员,如下所示:

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

源名称是一个可变长度的字符串,用于指定事件源的名称。 计算机名称是生成事件的计算机的名称。 后跟一些填充字节,以便用户 SID 在 DWORD 边界上对齐。 记录此事件时,用户 SID 标识活动用户。 如果 UserSidLength 为零,则此字段可能为空。

事件标识符与源名称和语言标识符一起标识更详细地描述事件的字符串。 字符串用作替换字符串,并合并到消息字符串中以生成完整的消息。 消息字符串包含在注册表的源条目中指定的消息文件中。 若要从消息文件获取适当的消息字符串,请使用 LoadLibrary 函数加载消息文件,并使用 FormatMessage 函数。

二进制信息是特定于事件的信息。 它可能是设备驱动程序出现错误时处理器寄存器的内容、从网络接收的无效数据包的转储、 (检测到数据区域损坏) 时,程序中所有结构的转储,等等。 此信息应该有助于编写设备驱动程序或应用程序,以跟踪 bug 或未经授权的中断进入应用程序。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 winnt.h (包括 Windows.h)

另请参阅

LookupAccountSid

ReadEventLog