Compartir a través de


Función ReportEventW (winbase.h)

Escribe una entrada al final del registro de eventos especificado.

Sintaxis

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
);

Parámetros

[in] hEventLog

Identificador del registro de eventos. La función RegisterEventSource devuelve este identificador.

A partir de Windows XP con SP2, este parámetro no puede ser un identificador para el registro de de seguridad de . Para escribir un evento en el registro de de seguridad de , use la función AuthzReportSecurityEvent.

[in] wType

Tipo de evento que se va a registrar. Este parámetro puede ser uno de los siguientes valores.

Valor Significado
EVENTLOG_SUCCESS
0x0000
Evento de información
EVENTLOG_AUDIT_FAILURE
0x0010
Evento de auditoría de errores
EVENTLOG_AUDIT_SUCCESS
0x0008
Evento de auditoría correcta
EVENTLOG_ERROR_TYPE
0x0001
Evento de error
EVENTLOG_INFORMATION_TYPE
0x0004
Evento de información
EVENTLOG_WARNING_TYPE
0x0002
Evento de advertencia
 

Para obtener más información sobre los tipos de eventos, vea tipos de eventos.

[in] wCategory

Categoría de evento. Se trata de información específica del origen; la categoría puede tener cualquier valor. Para obtener más información, consulte categorías de eventos.

[in] dwEventID

Identificador de evento. El identificador de evento especifica la entrada en el archivo de mensaje asociado al origen del evento. Para obtener más información, consulte identificadores de eventos.

[in] lpUserSid

Puntero al identificador de seguridad del usuario actual. Este parámetro puede ser NULL si no se requiere el identificador de seguridad.

[in] wNumStrings

Número de cadenas de inserción en la matriz a las que apunta el parámetro lpStrings. Un valor de cero indica que no hay cadenas presentes.

[in] dwDataSize

Número de bytes de datos sin procesar (binarios) específicos del evento que se van a escribir en el registro. Si este parámetro es cero, no hay ningún dato específico del evento presente.

[in] lpStrings

Puntero a un búfer que contiene una matriz de cadenas terminadas en NULL que se combinan en el mensaje antes de que el Visor de eventos muestre la cadena al usuario. Este parámetro debe ser un puntero válido (o NULL), incluso si wNumStrings es cero. Cada cadena está limitada a 31 839 caracteres.

Antes de Windows Vista: Cada cadena está limitada a 32 000 caracteres.

[in] lpRawData

Puntero al búfer que contiene los datos binarios. Este parámetro debe ser un puntero válido (o NULL), incluso si el parámetro dwDataSize es cero.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero, lo que indica que la entrada se escribió en el registro.

Si se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError, que devuelve uno de los siguientes códigos de error extendidos.

Código de error Significado
ERROR_INVALID_PARAMETER
Uno de los parámetros no es válido.

Este error se devuelve en Windows Server 2003 si los datos del mensaje que se van a registrar son demasiado grandes. El servidor RPC devuelve este error en Windows Server 2003 si el parámetro dwDataSize es mayor que 261 991 (0x3ff67).

ERROR_NOT_ENOUGH_MEMORY
Los recursos de memoria insuficientes están disponibles para completar la operación.
RPC_S_INVALID_BOUND
Los límites de matriz no son válidos.

Este error se devuelve si los datos del mensaje que se van a registrar son demasiado grandes. En Windows Vista y versiones posteriores, este error se devuelve si el parámetro dwDataSize es mayor que 61 440 (0xf000).

RPC_X_BAD_STUB_DATA
El código auxiliar recibió datos incorrectos.

Este error se devuelve en Windows XP si los datos del mensaje que se van a registrar son demasiado grandes. El servidor RPC devuelve este error en Windows XP, si el parámetro dwDataSize es mayor que 262 143 (0x3ffff).

otros
Use FormatMessage para obtener la cadena de mensaje para el error devuelto.

Observaciones

Esta función se usa para registrar un evento. La entrada se escribe al final del registro configurado para el origen identificado por el parámetro hEventLog. La función ReportEvent agrega la hora, la longitud de la entrada y los desplazamientos antes de almacenar la entrada en el registro. Para habilitar la función para agregar el nombre de usuario, debe proporcionar el SID del usuario en el parámetro lpUserSid.

Hay diferentes límites de tamaño en el tamaño de los datos del mensaje que se pueden registrar en función de la versión de Windows usada por el cliente donde se ejecuta la aplicación y el servidor donde se registra el mensaje. El servidor viene determinado por el parámetro lpUNCServerName pasado a la función RegisterEventSource. Se devuelven errores diferentes cuando se supera el límite de tamaño que depende de la versión de Windows.

Si la cadena que registra contiene %n, donde n es un valor entero (por ejemplo, %1), el visor de eventos lo trata como una cadena de inserción. Dado que una dirección IPv6 puede contener esta secuencia de caracteres, debe proporcionar un especificador de formato (! S!) para registrar un mensaje de evento que contiene una dirección IPv6. Este especificador indica al código de formato que use la cadena literalmente y no realice más expansiones (por ejemplo, "mi dirección IPv6 es: %1! S!").

Ejemplos

Para obtener un ejemplo, vea Reporting an Event.

Nota

El encabezado winbase.h define ReportEvent como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winbase.h (incluya Windows.h)
biblioteca de Advapi32.lib
DLL de Advapi32.dll

Consulte también

ClearEventLog

CloseEventLog de

formato de archivo de registro de eventos

funciones de registro de eventos de

OpenEventLog

ReadEventLog

RegisterEventSource