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.
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 |
---|---|
|
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). |
|
Los recursos de memoria insuficientes están disponibles para completar la operación. |
|
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). |
|
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). |
|
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
Formato de archivo de registro de eventos