Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können einen WPP-Präprozessorkonfigurationsblock verwenden, um Daten zu Ablaufverfolgungsmeldungen hinzuzufügen.
Der WPP-Konfigurationsblock wird durch die begin_wpp Konfiguration und end_wpp Anweisungen definiert, die Sie im Quellcode platzieren.
begin_wpp Konfiguration
...
Konfigurationsblock
...
end_wpp
Wenn Sie Konfigurationsdaten in eine Headerdatei einfügen, geben Sie den Namen der Headerdatei in den Projekteigenschaften an (für die WPP-Ablaufverfolgung). Geben Sie auf der Eigenschaftenseite unter "Dateioptionen " die Scankonfigurationsdatei an. Weitere Informationen finden Sie unter WPP Preprocessor .
Syntax des Konfigurationsblocks
USEPREFIX (Function_Name, "Formatzeichenfolge");
Definiert ein Formatzeichenfolgenpräfix, das verwendet werden soll, wenn das Ereignis protokolliert wird. Der erste Parameter ist der Name der Funktion, auf die dieses Präfix angewendet wird. Der zweite Parameter ist die zu verwendende Formatzeichenfolge. Geben Sie %! an, um den Standardwert zu verwenden. STDPREFIX!. Das Standardpräfix für die Ablaufverfolgungsnachricht gibt die CPU-Nummer, Prozess-ID, Thread-ID, zeitstempel im UTC-Format (Coordinated Universal Time) und den Anzeigenamen der GUID des Steuerelements an.
//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");
FUNC Function_Name{args}(EXP);
Definiert den Namen und die Signatur der Ablaufverfolgungsfunktion. Die geschweiften Klammern { } werden verwendet, um festgelegte Werte für die Funktion zu definieren. Im folgenden Beispiel verwendet die Funktion ein Argument und keine Formatzeichenfolge, und die EBENE wird auf FEHLER festgelegt.
//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);
USESUFFIX (Function_Name, "Format string");
Definiert das Formatzeichenfolgensuffix, das verwendet werden soll, wenn das Ereignis protokolliert wird. Der erste Parameter ist der Name der Funktion, auf die dieses Suffix angewendet wird. Der zweite Parameter ist die zu verwendende Formatzeichenfolge. Sie können Variablennamen in Ihrem Code verwenden.
//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);
Beispielkonfigurationsblock
Im folgenden Beispiel wird ein Ablaufverfolgungsmakro definiert, das das Formatzeichenfolgenpräfix und -suffix verwendet. Wenn Sie ein Ablaufverfolgungsmakro definieren, müssen Sie auch Makros definieren, um den Logger auszuwählen und zu überprüfen, ob das Ereignis protokolliert werden soll.
//MACRO: TRACE_RETURN
//
//begin_wpp config
//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");
//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);
//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);
//end_wpp
//
// The next two macros are for checking if the event should be logged, and for
// choosing the logger handle to use when calling the ETW trace API
//
#define WPP_LEVEL_EXP_ENABLED(LEVEL, HR) WPP_FLAG_ENABLED(LEVEL)
#define WPP_LEVEL_EXP_LOGGER(LEVEL, HR) WPP_FLAG_LOGGER(LEVEL)
Beispiel für Ablaufverfolgungsergebnisse
[0]0F78.0460::06/24/2006-15:54:54.880 [tracedrv]Function Return=0x8000000f(STATUS_DEVICE_POWERED_OFF)