Anropa SetupWriteTextLogError

SetupWriteTextLogError skriver information om ett SetupAPI-specifikt fel eller ett Win32-fel till en SetupAPI-textlogg. SetupWriteTextLogError skriver två poster i följd till en textlogg: den första posten innehåller samma information i samma format som den som skrivits av SetupWriteTextLog och den andra posten loggar en motsvarande felkod och en användarvänlig beskrivning av felet.

För att anropa SetupWriteTextLogError tillhandahåller ett program samma information som det skulle tillhandahålla för att anropa SetupWriteTextLog och tillhandahåller dessutom värdet för ett SetupAPI-specifikt fel eller ett Win32-fel.

SetupWriteTextLogError skriver den första loggposten i följande format:

entry_prefix time_stamp kategori ****indraget formaterad meddelande

SetupWriteTextLogError skriver den andra loggposten i följande format:

entry_prefix time_stamp kategori **indentation **Fel:felnummer felsbeskrivning

Var:

  • Fälten entry_prefix, tidsstämpel, kategori, indrag och formaterade meddelanden är desamma som de som beskrivs i Format för en textloggavsnittstext.

  • Fältet felnummer innehåller felnumret.

  • Fältet felbeskrivning innehåller en användarvänlig beskrivning av felet.

I följande exempel visas hur ett program vanligtvis anropar SetupWriteTextLogError för att logga information om ett fel i en textlogg. Felet som används i exemplet är ett systemstartfel. Programmet anropar SetupWriteTextLogError och anger följande parametervärden:

  • LogToken är inställt på ett loggtokenvärde som antingen hämtades genom att anropa SetupGetThreadLogToken eller är ett av de systemdefinierade loggtokenvärdena som beskrivs i Loggtoken.

  • Kategori är inställd på TXTLOG_VENDOR, vilket anger att loggposten görs av ett program som tillhandahålls av leverantören. Händelsekategorier beskrivs i Aktivera händelsekategorier för en textlogg.

  • LogFlags är inställt på TXTLOG_ERROR. Det här exemplet innehåller ingen tidsstämpel eller ändrar indragsdjupet. Det aktuella indragsdjupet var tidigare inställt på fem textutrymmen i monorymden. Information om hur du ändrar indragsdjupet finns i Skriva indragna loggposter. Händelsenivåer beskrivs i Ange händelsenivå för en textlogg.

  • Felet är inställt på Win32-felkodens värde ERROR_SERVICE_ALREADY_RUNNING. Decimalvärdet för den här felkoden är 1056.

  • MessageStr är inställt på TEXT("Starta tjänst: Misslyckades att starta tjänsten 'SomeService'").

  • En kommaavgränsad parameterlista tillhandahålls inte.

Parametrarna LogToken, Category och LogFlags påverkar driften av SetupWriteTextLogError på samma sätt som dessa parametrar påverkar driften av SetupWriteTextLog.

Följande kod anropar SetupWriteTextLogError för att skriva loggposten för det här exemplet:

//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'"),);

Om TXTLOG_VENDOR händelsekategori är aktiverad och TXTLOG_ERROR händelsenivå har angetts för textloggen skapar den här koden en post i textloggen som skulle formateras på följande sätt:

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

Tänk på att SetupWriteTextLogError innehåller strängen "En instans av tjänsten körs redan." för att beskriva Win32-felet vars värde är 1056.