SetupWriteTextLogError の呼び出し

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 エラーを説明する文字列 "サービスのインスタンスが既に実行されています" を提供します。