Aufruf von SetupWriteTextLogError

SetupWriteTextLogError schreibt Informationen zu einem SetupAPI-spezifischen Fehler oder einem Win32-Fehler in ein SetupAPI-Textprotokoll. SetupWriteTextLogError schreibt zwei aufeinander folgende Einträge in ein Textprotokoll: Der erste Eintrag enthält die gleichen Informationen im gleichen Format wie die von SetupWriteTextLog geschriebenen und der zweite Eintrag protokolliert einen entsprechenden Fehlercode und eine benutzerfreundliche Beschreibung des Fehlers.

Um SetupWriteTextLogError aufzurufen, stellt eine Anwendung die gleichen Informationen bereit, die zum Aufrufen von SetupWriteTextLog bereitgestellt werden, und stellt außerdem den Wert eines SetupAPI-spezifischen Fehlers oder eines Win32-Fehlers bereit.

SetupWriteTextLogError schreibt den ersten Protokolleintrag im folgenden Format:

entry_prefix time_stamp Kategorie ****indentation formatted-message

SetupWriteTextLogError schreibt den zweiten Protokolleintrag im folgenden Format:

entry_prefix time_stamp Kategorie **Einzug **Fehler:error-number error-description

Ort:

  • Die Felder entry_prefix, Zeitstempel, Kategorie, Einzug und formatierte Nachrichten sind mit denen identisch, die im Format eines Textprotokollabschnittstexts beschrieben werden.

  • Das Feld Fehlernummer enthält die Fehlernummer.

  • Das Feld " Fehlerbeschreibung " enthält eine benutzerfreundliche Beschreibung des Fehlers.

Das folgende Beispiel zeigt, wie eine Anwendung in der Regel SetupWriteTextLogError aufruft, um Informationen zu einem Fehler in einem Textprotokoll zu protokollieren. Der im Beispiel verwendete Fehler ist ein Systemstartfehler. Die Anwendung ruft SetupWriteTextLogError auf, wobei die folgenden Parameterwerte angegeben werden:

  • LogToken wird auf einen Protokolltokenwert festgelegt, der entweder durch Aufrufen von SetupGetThreadLogToken abgerufen wurde oder einer der systemdefinierten Protokolltokenwerte ist, die in Protokolltoken beschrieben werden.

  • Die Kategorie ist auf TXTLOG_VENDOR festgelegt, was angibt, dass der Protokolleintrag von einer vom Anbieter bereitgestellten Anwendung erfolgt. Ereigniskategorien werden unter Aktivieren von Ereigniskategorien für ein Textprotokoll beschrieben.

  • LogFlags ist auf TXTLOG_ERROR festgelegt. Dieses Beispiel enthält keinen Zeitstempel und ändert die Einzugstiefe nicht. Die aktuelle Einzugstiefe wurde zuvor auf fünf Leerzeichen in Festbreitenschrift festgelegt. Informationen zum Ändern der Einzugstiefe finden Sie unter Schreiben von eingezogenen Protokolleinträgen. Ereignisebenen werden unter Festlegen der Ereignisebene für ein Textprotokoll beschrieben.

  • Error wird auf den Wert des Win32-Fehlercodes ERROR_SERVICE_ALREADY_RUNNING festgelegt. Der Dezimalwert dieses Fehlercodes ist 1056.

  • MessageStr ist auf TEXT("Start Service: Failed to start service 'SomeService'") festgelegt.

  • Es wird keine durch Kommas getrennte Parameterliste angegeben.

Die Parameter LogToken, Category und LogFlags wirken sich auf den Vorgang von SetupWriteTextLogError auf die gleiche Weise aus wie diese Parameter auf den Vorgang von SetupWriteTextLog.

Der folgende Code ruft SetupWriteTextLogError auf, um den Protokolleintrag für dieses Beispiel zu schreiben:

//The LogToken value was previously returned by call to
//SetupGetThreadLogToken or one of the system-defined log token values
DWORD Category = TXTLOG_VENDOR; 
DWORD Flags = TXTLOG_ERROR ;
DWORD ErrorCode = 1056; // The corresponding Win32 error code

SetupWriteTextLog(LogToken, Category, Flags, ErrorCode, TEXT("Start Service: Failed to start service 'SomeService'"),);

Wenn die TXTLOG_VENDOR Ereigniskategorie aktiviert ist und die TXTLOG_ERROR Ereignisebene für das Textprotokoll festgelegt wird, erstellt dieser Code einen Eintrag im Textprotokoll, der wie folgt formatiert würde:

!!!     :  Start Service: Failed to start service 'SomeService' 
!!!   :  Error 1056: An instance of the service is already running.

Beachten Sie, dass SetupWriteTextLogError die Zeichenfolge "Eine Instanz des Diensts ist bereits ausgeführt" bereitstellt, um den Win32-Fehler zu beschreiben, dessen Wert 1056 ist.