Función EvtFormatMessage (winevt.h)
Aplica formato a una cadena de mensaje.
Sintaxis
BOOL EvtFormatMessage(
[in] EVT_HANDLE PublisherMetadata,
[in] EVT_HANDLE Event,
[in] DWORD MessageId,
[in] DWORD ValueCount,
[in] PEVT_VARIANT Values,
[in] DWORD Flags,
[in] DWORD BufferSize,
[in] LPWSTR Buffer,
[out] PDWORD BufferUsed
);
Parámetros
[in] PublisherMetadata
Identificador de los metadatos del proveedor que devuelve la función EvtOpenPublisherMetadata . El identificador actúa como contexto de formato para el evento o el identificador de mensaje.
Puede establecer este parámetro en NULL si el servicio recopilador de eventos de Windows reenvía el evento. Los eventos reenviados incluyen una sección RenderingInfo que contiene las cadenas de mensaje representadas. También puede establecer este parámetro en NULL si la propiedad de evento que está formateado se define en el archivo Winmeta.xml (por ejemplo, si level está establecido en win:Error). En este último caso, el servicio usa el proveedor Winmeta como contexto de formato y solo dará formato a las cadenas de mensaje a las que haga referencia en caso de que se definan en el archivo Winmeta.xml.
[in] Event
Identificador de un evento. El parámetro Flags especifica la cadena de mensaje en caso de que desee dar formato. Este parámetro debe ser NULL si el parámetro Flags está establecido en EvtFormatMessageId.
[in] MessageId
Identificador de recurso de la cadena de mensaje a la que desea dar formato. Para obtener el identificador de recurso de una cadena de mensaje, llame a la función GetPublisherMetadataProperty . Establezca este parámetro solo si el parámetro Flags está establecido en EvtFormatMessageId.
[in] ValueCount
Número de valores del parámetro Values .
[in] Values
Matriz de valores de inserción que se usará al dar formato a la cadena de mensaje del evento. Normalmente, se establece este parámetro en NULL y la función obtiene los valores de inserción de los propios datos del evento. Usaría este parámetro para invalidar el comportamiento predeterminado y proporcionar los valores de inserción que se van a usar. Por ejemplo, puede usar este parámetro si desea resolver un SID en un nombre principal antes de insertar el valor.
Para invalidar los valores de inserción, el parámetro Flags debe establecerse en EvtFormatMessageEvent, EvtFormatMessageXML o EvtFormatMessageId. Si Flags se establece en EvtFormatMessageId, el identificador de recurso debe identificar la cadena de mensaje del evento.
[in] Flags
Marca que especifica la cadena de mensaje en el evento al que se va a dar formato. Para conocer los valores posibles, consulte la enumeración EVT_FORMAT_MESSAGE_FLAGS .
[in] BufferSize
Tamaño del búfer de búfer , en caracteres.
[in] Buffer
Búfer asignado por el autor de la llamada que recibirá la cadena de mensaje con formato. Puede establecer este parámetro en NULL para determinar el tamaño de búfer necesario.
[out] BufferUsed
Tamaño, en caracteres del búfer asignado por el autor de la llamada que usó la función o el tamaño de búfer necesario si se produce un error en la función ERROR_INSUFFICIENT_BUFFER.
Valor devuelto
Código o valor devuelto | Descripción |
---|---|
|
La función se ha realizado correctamente. |
|
Error en la función. Llame a la función GetLastError para obtener el código de error. |
Comentarios
Cuando el servicio intenta buscar un mensaje para un evento, el servicio busca en los recursos de la tabla de mensajes del publicador indicados por el parámetro PublisherMetadata . Una vez encontrado el identificador del mensaje, se usan los siguientes algoritmos de búsqueda.
Para los mensajes de eventos:
- Busque el archivo especificado en el atributo messageFileName del elemento provider .
- Si no se encuentra, los mensajes del sistema de búsqueda.
- Busque los recursos del proveedor winmeta.
- Busque el archivo especificado en el atributo messageFileName del elemento provider .
- Busque el archivo especificado en el atributo messageFileName del elemento provider .
- Si no se encuentra, busque los recursos del proveedor winmeta.
- Buscar archivos enumerados en el atributo parameterFileName del elemento provider de izquierda a derecha.
- Si no se encuentra, los mensajes del sistema de búsqueda.
Ejemplos
Para obtener un ejemplo en el que se muestra cómo usar esta función, vea Aplicar formato a los mensajes de eventos y obtener los metadatos de un proveedor.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winevt.h |
Library | Wevtapi.lib |
Archivo DLL | Wevtapi.dll |