Función WmiTraceMessageVa (wdm.h)

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

Sintaxis

NTSTATUS WmiTraceMessageVa(
  [in] TRACEHANDLE LoggerHandle,
  [in] ULONG       MessageFlags,
  [in] LPCGUID     MessageGuid,
  [in] USHORT      MessageNumber,
  [in] va_list     MessageArgList
);

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 una clase 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] MessageArgList

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

WmiTraceMessageVa 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 memoria de búfer insuficiente para registrar el mensaje. Vea la sección Comentarios para obtener más información.
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 marcas de mensaje siguientes:

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 está habilitada 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.
 

WmiTraceMessageVa no registra el 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.
WmiTraceMessageVa 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

WmiTraceMessage