Platform SDK: Debugging and Error Handling

ReportEvent

The ReportEvent function writes an entry at the end of the specified event log.

BOOL ReportEvent(
  HANDLE hEventLog,    // handle to event log
  WORD wType,          // event type
  WORD wCategory,      // event category
  DWORD dwEventID,     // event identifier
  PSID lpUserSid,      // user security identifier
  WORD wNumStrings,    // number of strings to merge
  DWORD dwDataSize,    // size of binary data
  LPCTSTR *lpStrings,  // array of strings to merge
  LPVOID lpRawData     // binary data buffer
);

Parameters

hEventLog
[in] Handle to the event log. This handle is returned by the RegisterEventSource function.
wType
[in] Specifies the type of event being logged. This parameter 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 Types.

wCategory
[in] Specifies the event category. This is source-specific information; the category can have any value.
dwEventID
[in] Specifies the event. The event identifier specifies the message that goes with this event as an entry in the message file associated with the event source.
lpUserSid
[in] Pointer to the current user's security identifier. This parameter can be NULL if the security identifier is not required.
wNumStrings
[in] Specifies the number of strings in the array pointed to by the lpStrings parameter. A value of zero indicates that no strings are present.
dwDataSize
[in] Specifies the number of bytes of event-specific raw (binary) data to write to the log. If this parameter is zero, no event-specific data is present.
lpStrings
[in] Pointer to a buffer containing an array of null-terminated strings that are merged into the message from the message file before Event Viewer displays the string to the user. This parameter must be a valid pointer (or NULL), even if wNumStrings is zero. Each string has a limit of 32K bytes.
lpRawData
[in] Pointer to the buffer containing the binary data. This parameter must be a valid pointer (or NULL), even if the dwDataSize parameter is zero.

Return Values

If the function succeeds, the return value is nonzero, indicating that the entry was written to the log.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

This function is used to log an event. The entry is written to the end of the configured logfile for the source identified by the hEventLog parameter. The ReportEvent function adds the time, the entry's length, and the offsets before storing the entry in the log. To enable the function to add the username, you must supply the user's SID in the lpUserSid parameter.

Requirements

  Windows NT/2000: Requires Windows NT 3.1 or later.
  Windows 95/98: Unsupported.
  Header: Declared in Winbase.h; include Windows.h.
  Library: Use Advapi32.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000.

See Also

Event Logging Overview, Event Logging Functions, ClearEventLog, CloseEventLog, OpenEventLog, ReadEventLog, RegisterEventSource