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'")。
未提供逗號分隔參數清單。
LogToken、Category 和 LogFlags 參數會以與這些參數相同的方式影響 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 錯誤。