Share via


Función ReportEventA (winbase.h)

Escribe una entrada al final del registro de eventos especificado.

Sintaxis

BOOL ReportEventA(
  [in] HANDLE hEventLog,
  [in] WORD   wType,
  [in] WORD   wCategory,
  [in] DWORD  dwEventID,
  [in] PSID   lpUserSid,
  [in] WORD   wNumStrings,
  [in] DWORD  dwDataSize,
  [in] LPCSTR *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 seguridad . Para escribir un evento en el registro de seguridad , use la función AuthzReportSecurityEvent .

[in] wType

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

Valor Significado
EVENTLOG_SUCCESS
0x0000
Evento de información
EVENTLOG_AUDIT_FAILURE
0x0010
Evento de auditoría de error
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, vea 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 datos específicos del evento.

[in] lpStrings

Puntero a un búfer que contiene una matriz de cadenas terminadas en null que se combinan en el mensaje antes de Visor de eventos muestra 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 la función no se realiza correctamente, 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 ha recibido 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.

Comentarios

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 .

Existen límites de tamaño diferentes 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 ninguna expansión adicional (por ejemplo, "mi dirección IPv6 es: %1! S!").

Ejemplos

Para obtener un ejemplo, consulte Creación de informes de un evento.

Nota

El encabezado winbase.h define ReportEvent como un 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

ClearEventLog

CloseEventLog

Formato de archivo de registro de eventos

Funciones de registro de eventos

OpenEventLog

ReadEventLog

RegisterEventSource