Condividi tramite


Funzione WmiTraceMessage (wdm.h)

La routine WmiTraceMessage aggiunge un messaggio al log di output di una sessione di traccia software WPP .

Sintassi

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

Parametri

[in] LoggerHandle

Specifica un handle di traccia per una sessione di traccia software.

[in] MessageFlags

Specifica un OR bit per bit di uno o più flag di messaggio. Vedere la sezione Osservazioni per informazioni dettagliate.

[in] MessageGuid

Specifica un GUID che identifica la classe di messaggi di traccia software.

[in] MessageNumber

Identifica il sottotipo di messaggio. Il significato dei sottotipi è specifico della classe di traccia software e del provider.

[in] ...

Fornisce un elenco obbligatorio di parametri del messaggio che specificano un set di parti del messaggio. I parametri sono organizzati come una sequenza di coppie di parametri, in cui ogni coppia specifica una parte del messaggio completo. Ogni coppia di parametri è costituita da un puntatore PVOID ai dati, seguito immediatamente da un valore ULONG che specifica la lunghezza dei dati. L'elenco di parametri deve essere terminato da un puntatore PVOID NULL seguito da un ULONG(0).

Valore restituito

WmiTraceMessage restituisce uno dei valori seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
Operazione riuscita.
STATUS_INVALID_HANDLE
LoggerHandle non è un handle di traccia software valido.
STATUS_NO_MEMORY
Memoria buffer insufficiente per registrare il messaggio. Vedere la sezione relativa alle osservazioni.
Altro valore NTSTATUS
An internal error occurred.

Commenti

Un chiamante può usare WmiTraceMessage o WmiTraceMessageVa per aggiungere un messaggio al log di output di una sessione di traccia software WPP. WmiTraceMessage semplifica il codice di un chiamante gestendo il meccanismo dell'elenco di variabili prima di chiamare WmiTraceMessageVa.

Un chiamante può impostare i flag di messaggio seguenti:

Flag Descrizione
TRACE_MESSAGE_SEQUENCE Includere un numero di sequenza nel messaggio. La sequenziazione dei messaggi può essere usata solo se è impostata per la sessione di traccia software specificata da LoggerHandle.
TRACE_MESSAGE_GUID MessageGuid specifica un GUID che identifica una classe di traccia software. Questo flag deve essere impostato.
TRACE_MESSAGE_TIMESTAMP Includere un timestamp nel messaggio.
TRACE_MESSAGE_PERFORMANCE_TIMESTAMP Questo flag non è implementato ed è obsoleto. Non deve essere utilizzata.
TRACE_MESSAGE_SYSTEMINFO Includere l'identificatore del thread (TID) e l'identificatore di processo (PID) nel messaggio.
 

Un messaggio non verrà registrato se una delle condizioni seguenti è vera:

  • Le dimensioni totali, in byte, dei dati del messaggio e dell'intestazione del messaggio sono maggiori delle dimensioni dei singoli buffer dei messaggi allocati per una sessione di traccia software. La dimensione massima dell'intestazione del messaggio è di 48 byte.
  • Tutti i buffer dei messaggi allocati alla sessione di traccia software sono pieni.
WmiTraceMessage viene eseguito in IRQL del chiamante.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows XP e versioni successive di Windows.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Vedere la sezione Osservazioni.

Vedi anche

IoWmiWriteEvent

TRACE_INFORMATION_CLASS

WmiFireEvent

WmiQueryTraceInformation

WmiTraceMessageVa