瞭解延伸錯誤資訊
擴充錯誤資訊是記錄陣列,每個記錄都會指出透過系統或應用程式中特定層傳遞錯誤碼。 如果電腦 C 上發生錯誤,因為從電腦 B 呼叫錯誤,接著從機器 A 呼叫,因此電腦 C 上的 RPC 執行時間會產生一或多個描述錯誤的記錄,並將其傳遞至電腦 B。機器 B 可以將一或多個記錄新增至現有鏈結的前端。 並將完整鏈結傳遞至 A。可以新增一或多個記錄,並顯示或記錄資訊。 基本上,延伸的錯誤鏈結代表錯誤的歷程記錄。
擴充錯誤資訊不會取代 (RPC_S_* 狀態碼) 的錯誤碼。 不論產生多少或是否產生擴充錯誤資訊,錯誤碼都會保持不變。
每個延伸的錯誤資訊記錄都包含下列專案。 如需詳細資訊 ,請參閱RPC_EXTENDED_ERROR_INFO :
ComputerName —這是錯誤來源電腦的非限定 DNS 名稱。 只有機器界限上的記錄具有這項資訊。 例如,在稍早使用電腦 A、B 和 C 所述的案例中,會針對下欄欄位定義 ComputerName:
Record 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 本機過程呼叫設施。
- 狀態- 圖層所產生的錯誤碼或傳回
- DetectLocation — 唯一的數位,識別偵測到錯誤所在程式碼的位置。 此欄位系結至程式碼,並將從版本變更為版本。 將會發佈最常見的偵測位置個別清單。
- 旗標—指定記錄相關資訊的旗標。 目前定義的旗標是 EEInfoPreviousRecordsMissing 和 EEInfoNextRecordsMissing,分別對應至數值 1 和 2。 如果已設定 EEInfoPreviousRecordsMissing,則會在該記錄遺失前有一或多個記錄。 如果已設定 EEInfoNextRecordsMissing,該記錄之後會遺失一或多個記錄。 如需記錄遺失原因的描述,請參閱 擴充錯誤資訊的可靠性。
- 最多四個錯誤參數。 錯誤參數是輕量型變體結構,可提供錯誤的其他資訊。 其他資訊取決於錯誤和偵測位置。 參數的類型可以是 ANSI 字串 (LPSTR) 、Unicode String (LPWSTR) 、long value (long) 、short value (short) 、pointer (int64) 或 none。