拡張エラー情報の信頼性
拡張エラー情報は信頼できません。 拡張エラー情報は、コード ロジックの構築には使用できません。 拡張エラー情報の存在をチェックし、存在する場合は、その情報をダンプ、保存、またはログに記録するのが適切です。 ただし、情報またはその内容に依存しないでください。
拡張エラー情報が信頼できない理由を次に示します。
- 拡張エラー・レコードのシーケンスと内容は、変更される可能性があるシステムの内部アーキテクチャによって異なります。 特定の操作は現在のシステムの NPFS を経由する可能性がありますが、明日は TCP を経由する可能性があります。 これらのコンポーネントによって生成されるエラー コードは非常に異なるため、コード チェックは本質的に信頼性が低く、推奨されません。
- 前述のように、拡張エラー情報の伝達を無効にすることができます。 検出コードが含まれている場合、アプリケーションは特定の環境で動作を停止する可能性があります。
- 拡張エラー情報の伝達は、ベスト エフォート方式で実行されます。 チェーンを処理または伝達するのに十分なメモリがコンピューターにない場合、拡張エラー情報の伝達または生成が失敗する可能性があります。 このような状況では、チェーンは削除されます。 一部のプロトコルでは、通常は多くの情報が含まれていないため、障害パケットの長さが制限されています。 チェーンの長さがパケットの許容長を超えた場合、RPC ランタイムはチェーンから情報のドロップを開始し、チェーンをパケットに収めようとします。 最初の実行時は、最後のレコードだけが残るまで、最後のレコードから順にレコードを削除します。 チェーンがまだパケットに収まらない場合は、実行時に文字列パラメーターとコンピューター名が削除されます。 文字列パラメーターが削除された場合、パラメーターの型は none に設定されます。 レコードが削除されると、次のレコードに EEInfoNextRecordsMissing フラグが設定され、EEInfoPreviousRecordsMissing が前のレコードに設定されます。