Función WmiTraceMessage (wdm.h)

La rutina WmiTraceMessage agrega un mensaje al registro de salida de una sesión de seguimiento de software de WPP .

Sintaxis

NTSTATUS WmiTraceMessage(
  [in] TRACEHANDLE LoggerHandle,
  [in] ULONG       MessageFlags,
  [in] LPCGUID     MessageGuid,
  [in] USHORT      MessageNumber,
       ...         
);

Parámetros

[in] LoggerHandle

Especifica un identificador de seguimiento para una sesión de seguimiento de software.

[in] MessageFlags

Especifica un OR bit a bit de una o varias marcas de mensaje. Para obtener información detallada, consulte la sección Comentarios.

[in] MessageGuid

Especifica un GUID que identifica la clase de mensajes de seguimiento de software.

[in] MessageNumber

Identifica el subtipo de mensaje. El significado de los subtipos es específico de la clase de seguimiento de software y del proveedor.

[in] ...

Proporciona una lista necesaria de parámetros de mensaje que especifican un conjunto de elementos de mensaje. Los parámetros se organizan como una secuencia de pares de parámetros, donde cada par especifica una parte del mensaje completo. Cada par de parámetros consta de un puntero PVOID a los datos, seguido inmediatamente de un valor de ULONG que especifica la longitud de los datos. La lista de parámetros debe finalizarse mediante un puntero PVOID NULL seguido de un ULONG(0).

Valor devuelto

WmiTraceMessage devuelve uno de los siguientes valores:

Código devuelto Descripción
STATUS_SUCCESS
La operación se ha completado correctamente.
STATUS_INVALID_HANDLE
LoggerHandle no es un identificador de seguimiento de software válido.
STATUS_NO_MEMORY
No hay suficiente memoria de búfer para registrar el mensaje. Consulte la sección Comentarios.
Otro valor NTSTATUS
Se ha producido un error interno.

Comentarios

Un llamador puede usar WmiTraceMessage o WmiTraceMessageVa para agregar un mensaje al registro de salida de una sesión de seguimiento de software de WPP. WmiTraceMessage simplifica el código de un llamador controlando el mecanismo de lista de variables antes de llamar a WmiTraceMessageVa.

Un llamador puede establecer las siguientes marcas de mensaje:

Marca Descripción
TRACE_MESSAGE_SEQUENCE Incluya un número de secuencia en el mensaje. La secuenciación de mensajes solo se puede usar si se establece para la sesión de seguimiento de software especificada por LoggerHandle.
TRACE_MESSAGE_GUID MessageGuid especifica un GUID que identifica una clase de seguimiento de software. Esta marca debe establecerse.
TRACE_MESSAGE_TIMESTAMP Incluya una marca de tiempo en el mensaje.
TRACE_MESSAGE_PERFORMANCE_TIMESTAMP Esta marca no está implementada y está obsoleta. No se debe usar.
TRACE_MESSAGE_SYSTEMINFO Incluya el identificador de subproceso (TID) y el identificador de proceso (PID) en el mensaje.
 

No se registrará un mensaje si se cumple una de las siguientes condiciones:

  • El tamaño total, en bytes, de los datos del mensaje y el encabezado del mensaje es mayor que el tamaño de los búferes de mensajes individuales asignados para una sesión de seguimiento de software. (El tamaño máximo del encabezado del mensaje es de 48 bytes).
  • Todos los búferes de mensajes asignados a la sesión de seguimiento de software están llenos.
WmiTraceMessage se ejecuta en el IRQL del autor de la llamada.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows XP y versiones posteriores de Windows.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL vea la sección Comentarios.

Consulte también

IoWmiWriteEvent

TRACE_INFORMATION_CLASS

WmiFireEvent

WmiQueryTraceInformation

WmiTraceMessageVa