Freigeben über


WmiTraceMessageVa-Funktion (wdm.h)

Die WmiTraceMessageVa-Routine fügt dem Ausgabeprotokoll einer WPP-Softwareablaufverfolgungssitzung eine Nachricht hinzu.

Syntax

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

Die Parameter

[in] LoggerHandle

Gibt ein Ablaufverfolgungshandle für eine Softwareablaufverfolgungssitzung an.

[in] MessageFlags

Gibt ein bitweises OR einer oder mehrerer Nachrichtenkennzeichnungen an. Ausführliche Informationen finden Sie im Abschnitt "Hinweise".

[in] MessageGuid

Gibt eine GUID an, die eine Softwareablaufverfolgungsklasse identifiziert.

[in] MessageNumber

Identifiziert den Nachrichtenuntertyp. Die Bedeutung von Untertypen ist spezifisch für die Softwareablaufverfolgungsklasse und den Anbieter.

[in] MessageArgList

Stellt eine erforderliche Liste von Nachrichtenparametern bereit, die einen Satz von Nachrichtenteilen angeben. Die Parameter werden als Sequenz von Parameterpaaren organisiert, wobei jedes Paar einen Teil der vollständigen Nachricht angibt. Jedes Parameterpaar besteht aus einem PVOID-Zeiger auf Daten, gefolgt von einem ULONG-Wert, der die Länge der Daten angibt. Die Parameterliste muss von einem NULL PVOID-Zeiger gefolgt von einem ULONG(0) beendet werden.

Rückgabewert

WmiTraceMessageVa gibt einen der folgenden Werte zurück:

Rückgabecode Description
STATUS_SUCCESS
Der Vorgang wurde erfolgreich abgeschlossen.
STATUS_INVALID_HANDLE
LoggerHandle ist kein gültiger Softwareablaufverfolgungshandle.
STATUS_NO_MEMORY
Es ist nicht genügend Pufferspeicher vorhanden, um die Nachricht zu protokollieren. Weitere Informationen finden Sie im Abschnitt "Hinweise".
Anderer NTSTATUS-Wert
Ein interner Fehler ist aufgetreten.

Bemerkungen

Ein Aufrufer kann WmiTraceMessage oder WmiTraceMessageVa verwenden, um dem Ausgabeprotokoll einer WPP-Softwareablaufverfolgungssitzung eine Nachricht hinzuzufügen. WmiTraceMessage vereinfacht den Code eines Aufrufers, indem er den Variablenlistenmechanismus vor dem Aufrufen von WmiTraceMessageVa verarbeitet.

Ein Aufrufer kann die folgenden Nachrichtenkennzeichnungen festlegen:

Flag Description
TRACE_MESSAGE_SEQUENCE Fügen Sie eine Sequenznummer in die Nachricht ein. Die Nachrichtensequenzierung kann nur verwendet werden, wenn sie für die von LoggerHandle angegebene Softwareablaufverfolgungssitzung aktiviert ist.
TRACE_MESSAGE_GUID MessageGuid gibt eine GUID an, die eine Softwareablaufverfolgungsklasse identifiziert. Dieses Kennzeichen muss festgelegt werden.
TRACE_MESSAGE_TIMESTAMP Fügen Sie einen Zeitstempel in die Nachricht ein.
TRACE_MESSAGE_PERFORMANCE_TIMESTAMP Dieses Flag ist nicht implementiert und veraltet. Sie darf nicht verwendet werden.
TRACE_MESSAGE_SYSTEMINFO Fügen Sie den Threadbezeichner (TID) und den Prozessbezeichner (Process Identifier, PID) in die Nachricht ein.
 

WmiTraceMessageVa protokolliert die Nachricht nicht, wenn eine der folgenden Werte zutrifft:

  • Die Gesamtgröße der Nachrichtendaten und der Nachrichtenkopf in Bytes ist größer als die Größe einzelner Nachrichtenpuffer, die einer Softwareablaufverfolgungssitzung zugeordnet sind. (Die maximale Nachrichtenkopfgröße beträgt 48 Bytes.)
  • Alle Nachrichtenpuffer, die der Softwareablaufverfolgungssitzung zugeordnet sind, sind voll.
WmiTraceMessageVa wird an der IRQL des Aufrufers ausgeführt.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Verfügbar in Windows XP und höheren Versionen von Windows.
Zielplattform Universal
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Siehe Abschnitt "Hinweise".

Siehe auch

IoWMIWriteEvent

TRACE_INFORMATION_CLASS

WmiFireEvent

WmiQueryTraceInformation

WmiTraceMessage