SetupWriteTextLogError は 、SetupAPI 固有のエラーまたは Win32 エラーに関する情報を SetupAPI テキスト ログに書き込みます。 SetupWriteTextLogError は 、2 つの連続するエントリをテキスト ログに書き込みます。最初のエントリには SetupWriteTextLog によって記述されたのと同じ形式の同じ情報が含まれ、2 番目のエントリには対応するエラー コードとエラーのわかりやすい説明が記録されます。
SetupWriteTextLogError を呼び出すために、アプリケーションは SetupWriteTextLog を呼び出すために提供するのと同じ情報を提供し、さらに、SetupAPI 固有のエラーまたは Win32 エラーの値を提供します。
SetupWriteTextLogError は 、最初のログ エントリを次の形式で書き込みます。
entry_prefix time_stamp カテゴリ ****インデント フォーマット済みメッセージ
SetupWriteTextLogError は 、2 番目のログ エントリを次の形式で書き込みます。
entry_prefix time_stamp カテゴリ **インデント **エラー:エラー番号 エラーの説明
Where:
entry_prefix、タイム スタンプ、カテゴリ、インデント、および書式設定されたメッセージ フィールドは、「テキスト ログ セクション本文の形式」で説明されているものと同じです。
エラー番号フィールドには、エラー番号が含まれています。
エラーの説明フィールドには、エラーのわかりやすい説明が含まれています。
次の例は、アプリケーションが通常 SetupWriteTextLogError を呼び出して、エラーに関する情報をテキスト ログに記録する方法を示しています。 この例で使用されているエラーは、システム起動エラーです。 アプリケーションはSetupWriteTextLogErrorを呼び出し、次のパラメーター値を指定します。
LogToken は、SetupGetThreadLogToken を呼び出して取得したログ トークン値、または「ログ トークン」で説明されているシステム定義のログ トークン値のいずれかに設定されます。
カテゴリ は TXTLOG_VENDOR に設定されます。これは、ログ エントリがベンダー提供のアプリケーションによって作成されることを示します。 イベント カテゴリについては、テキスト ログのイベント カテゴリを有効にするを参照してください。
LogFlags は TXTLOG_ERROR に設定されています。 この例では、タイム スタンプを含めたり、インデントの深さを変更したりしません。 現在のインデントの深さは、以前は等幅スペース 5 文字分に設定されていました。 インデントの深さを変更する方法については、「 インデントされたログ エントリの書き込み」を参照してください。 イベント レベルについては、「 テキスト ログのイベント レベルの設定」を参照してください。
エラー には Win32 エラー コード ERROR_SERVICE_ALREADY_RUNNING の値が設定されます。 このエラー コードの 10 進値は 1056 です。
MessageStr が TEXT("サービスの開始: サービス 'SomeService' を開始できませんでした") に設定されています。
コンマ区切りのパラメーター リストは指定されていません。
パラメーター LogToken、Category、LogFlags は、SetupWriteTextLog の操作に影響するのと同様に、SetupWriteTextLogError の操作にも影響します。
次のコードは 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 エラーを説明する文字列 "サービスのインスタンスが既に実行されています" を提供します。