EVENTLOGRECORD
The EVENTLOGRECORD
structure contains information about an event record.
typedef struct _EVENTLOGRECORD { // evlr
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;
//
// Then
follow:
//
// TCHAR
SourceName[]
// TCHAR
Computername[]
//
SID UserSid
// TCHAR
Strings[]
//
BYTE Data[]
//
CHAR Pad[]
// DWORD
Length;
//
} EVENTLOGRECORD;
Members
Length
Specifies the
length, in bytes, of this event record. Note that this value is stored at both
ends of the entry to ease moving forward or backward through the log. The
length includes any pad bytes inserted at the end of the record for DWORD
alignment.
Reserved
Reserved.
RecordNumber
Contains a
record number that can be used with the EVENTLOG_SEEK_READ flag passed in a
call to the ReadEventLog
TimeGenerated
The time at
which this entry was submitted. This time is measured in the number of seconds
elapsed since 00:00:00 January 1, 1970.
TimeWritten
Specifies the
time at which this entry was received by the service to be written to the
logfile. This time is measured in the number of seconds elapsed since 00:00:00
January 1, 1970.
EventID
Identifies
the event. This is specific to the source that generated the event log entry,
and is used, together with SourceName, to identify a message in a
message file that is presented to the user while viewing the log.
EventType
Specifies the
type of event. This member can be one of the following values:
Value |
Meaning |
EVENTLOG_ERROR_TYPE |
Error event |
EVENTLOG_WARNING_TYPE |
Warning
event |
EVENTLOG_INFORMATION_TYPE |
Information
event |
EVENTLOG_AUDIT_SUCCESS |
Success
Audit event |
EVENTLOG_AUDIT_FAILURE |
Failure
Audit event |
For more
information about event types, see Event LoggingEJMIUI.
NumStrings
Specifies the
number of strings present in the log (at the position indicated by StringOffset).
These strings are merged into the message before it is displayed to the user.
EventCategory
Specifies a
subcategory for this event. This subcategory is source specific.
ReservedFlags
Reserved.
ClosingRecordNumber
Reserved.
StringOffset
Specifies the
offset of the strings within this event log entry.
UserSidLength
Specifies the
length, in bytes, of the UserSid member. This value can be zero if no
security identifier was provided.
UserSidOffset
Specifies the
offset of the security identifier within this event record.
DataLength
Specifies the
length, in bytes, of the event-specific data (at the position indicated by DataOffset).
DataOffset
Specifies the
offset of the event-specific information within this log. This information
could be something specific (a disk driver might log the number of retries, for
example), followed by binary information specific to the event being logged and
to the source that generated the entry.
SourceName
Contains the
variable-length null-terminated string specifying the name of the source
(application, service, driver, subsystem) that generated the entry. This is the
name used to retrieve from the registry the name of the file containing the
message strings for this source. It is used, together with the event
identifier, to get the message string that describes this event.
Computername
Contains the
variable-length null-terminated string specifying the name of the computer that
generated this event. There may also be some pad bytes after this field to
ensure that the UserSid is aligned on a DWORD boundary.
UserSid
Specifies the
security identifier of the active user at the time this event was logged. This
member may be empty if the UserSidLength member is zero.
The defined
members are followed by the replacement strings for the message identified by
the event identifier, the binary information, some pad bytes to make sure the
full entry is on a DWORD boundary, and finally the length of the log
entry again. Because the strings and the binary information can be of any
length, no structure members are defined to reference them.
The event
identifier together with SourceName and a language identifier identify a
message string that describes the event in more detail. The strings are used as
replacement strings and are merged into the message string to make a complete
message. The message strings are contained in a message file specified in the
source entry in the registry.
The binary
information is information that is specific to the event. It could be the
contents of the processor registers when a device driver got an error, a dump
of an invalid packet that was received from the network, a dump of all the
structures in a program (when the data area was detected to be corrupt), and so
on. This information should be useful to the writer of the device driver or the
application in tracking down bugs or unauthorized breaks into the application.
See Also