共用方式為


呼叫函式 SetupWriteTextLogError

SetupWriteTextLogError 會將 SetupAPI 特定錯誤或 Win32 錯誤的相關信息寫入 SetupAPI 文字記錄檔。 SetupWriteTextLogError 會將兩個連續專案寫入文字記錄檔:第一個專案包含與 SetupWriteTextLog 所撰寫格式相同的資訊,而第二個專案會記錄對應的錯誤碼和錯誤的用戶易記描述。

若要呼叫 SetupWriteTextLogError,應用程式會提供用來呼叫 SetupWriteTextLog 的相同資訊,此外,還會提供 SetupAPI 特定錯誤或 Win32 錯誤的值。

SetupWriteTextLogError 會以下列格式寫入第一個記錄條目:

entry_prefix time_stamp 類別 ****縮排 格式化的訊息

SetupWriteTextLogError 會以下列格式寫入第二則日誌項目:

entry_prefix time_stamp 類別 **縮排 **Error:error-number error-description

地點:

  • entry_prefix時間戳類別縮排格式化訊息欄位與文字記錄區段本文格式中所述的欄位相同。

  • 錯誤號碼欄位包含錯誤號碼。

  • 錯誤描述欄位包含錯誤的使用者易記描述。

下列範例示範應用程式通常如何呼叫 SetupWriteTextLogError 來記錄文字記錄檔中錯誤的相關信息。 此範例中使用的錯誤是系統啟動錯誤。 應用程式會呼叫 SetupWriteTextLogError,並提供下列參數值:

  • LogToken 被設置為一個記錄令牌值,這個值或者是透過呼叫 SetupGetThreadLogToken 獲得的,或者是記錄令牌中所描述的系統定義的記錄令牌值之一。

  • 類別 設定為 TXTLOG_VENDOR,表示日誌條目是由廠商提供的應用程式所建立。 事件類別描述在啟用文字日誌的事件類別中。

  • LogFlags 會設定為 TXTLOG_ERROR。 此範例不包含時間戳或變更縮排深度。 目前的縮排深度先前設定為五個單一空間文字空間。 如需變更縮排深度的相關資訊,請參閱 撰寫縮排日誌條目設定文字記錄檔的事件層級中所述。

  • Error 設為 Win32 錯誤碼 ERROR_SERVICE_ALREADY_RUNNING 的值。 這個錯誤碼的十進位值為 1056。

  • MessageStr 設定為 TEXT("啟動服務:無法啟動服務 'SomeService'")。

  • 未提供逗號分隔參數清單

LogTokenCategoryLogFlags 參數會以與這些參數相同的方式影響 SetupWriteTextLogError 的作業,而影響 SetupWriteTextLog 的作業。

下列程式代碼會呼叫 SetupWriteTextLogError 來撰寫此範例的記錄項目:

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

如果啟用了 TXTLOG_VENDOR 事件類別,並為文字日誌設定了 TXTLOG_ERROR 事件層級,則此代碼將在文字日誌中創建一個條目,格式如下:

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

請注意 ,SetupWriteTextLogError 會提供字串「服務實例已經執行中」,以描述值為 1056 的 Win32 錯誤。