Share via


拡張エラー情報について

拡張エラー情報はレコードの配列であり、それぞれがシステムまたはアプリケーション内の特定のレイヤーを介してエラー コードを渡すことを示します。 マシン C でエラーが発生した場合、マシン B から呼び出され、マシン A から呼び出されると、マシン C の RPC ランタイムによってエラーを説明する 1 つ以上のレコードが生成され、マシン B に渡されます。マシン B は、既存のチェーンの先頭に 1 つ以上のレコードを追加できます。 と は、完全なチェーンを A に渡します。では、1 つ以上のレコードを追加し、情報を表示またはログに記録できます。 基本的に、拡張エラー チェーンはエラーの履歴を表します。

拡張エラー情報は、エラー コード (RPC_S_* 状態コード) に置き換わるものではありません。 拡張エラー情報の生成量や生成の有無に関係なく、エラー コードは変更されません。

各拡張エラー情報レコードには、次のものが含まれます。 詳細については、 RPC_EXTENDED_ERROR_INFO を参照してください。

  • ComputerName — これは、エラーが発生したコンピューターの非修飾 DNS 名です。 この情報を持つのは、コンピューターの境界上のレコードのみです。 たとえば、マシン A、B、C で前述したシナリオでは、ComputerName は次のフィールドに対して定義されています。

    レコード ComputerName フィールド
    コンピューター C によって生成されたレコード #1 -
    コンピューター C によって生成されたレコード #2 -
    マシン C によって生成されたレコード #3 C
    マシン B によって生成されたレコード #1 -
    マシン B によって生成されたレコード #2 -
    マシン B によって生成されたレコード #3 B
    マシン A によって生成されたレコード #1 -
    マシン A によって生成されたレコード #2 -
    マシン A によって生成されたレコード #3 -
    チェーンの先頭  

     

  • ProcessID - エラーを生成したプロセスのプロセス識別子。

  • TimeStamp — エラーが発生した時刻 (UTC 形式で表されます)。

  • 生成コンポーネント: エラーを生成した論理コンポーネントの整数コード定義。 現在、次のコンポーネントが定義されています。

    コード 名前 説明
    1 Application 特定の RPC 呼び出しのマネージャー ルーチンを所有するコンポーネント
    2 ランタイム RPC ランタイム
    3 セキュリティ プロバイダー この呼び出しのセキュリティ プロバイダー。
    4 NPFS NPFS ファイル システム
    5 Rdr リダイレクター
    6 Nmp 名前付きパイプ システム。 これは NPFS または RDR のいずれかになりますが、多くの場合、RPC ランタイムは、要求された操作を実行したユーザーを認識せず、そのような場合は NMP が返されます。
    7 IO IO システムまたは IO システムによって使用されるドライバー。 これは、NPFS、RDR、または Winsock プロバイダーのいずれかです。
    8 Winsock Winsock プロバイダー
    9 Authz コード 承認 API。
    10 Lpc ローカル プロシージャ コール機能。

     

  • 状態 - レイヤーによって生成または返されるエラー コード
  • DetectionLocation — エラーが検出されたコードの場所を識別する一意の番号。 このフィールドはコードに関連付けられており、バージョンからバージョンに変更されます。 最も一般的に検出される検出場所の別の一覧が公開されます。
  • Flags — レコードに関する情報を指定するフラグ。 現在定義されているフラグは EEInfoPreviousRecordsMissing と EEInfoNextRecordsMissing で、それぞれ数値 1 と 2 に対応します。 EEInfoPreviousRecordsMissing が設定されている場合、そのレコードの前に 1 つ以上のレコードがありません。 EEInfoNextRecordsMissing が設定されている場合、そのレコードの後に 1 つ以上のレコードがありません。 レコードが見つからない理由の詳細については、「 拡張エラー情報の信頼性」を参照してください。
  • 最大 4 つのエラー パラメーター。 error パラメーターは、エラーに関する追加情報を提供する軽量のバリアント構造です。 追加情報は、エラーと検出場所によって異なります。 パラメーターには、ANSI 文字列 (LPSTR)、Unicode 文字列 (LPWSTR)、長い値 (long)、短い値 (short)、ポインター (int64)、または none のいずれかを指定できます。