SCSI 迷你埠偵錯的錯誤檢查
在偵錯 SCSI 迷你埠驅動程式的過程中,主要會發生兩個錯誤檢查:錯誤檢查0x77 (KERNEL_STACK_INPAGE_ERROR) 和錯誤檢查0x7A (KERNEL_DATA_INPAGE_ERROR) 。 如需其參數的完整詳細資料,請參閱 錯誤檢查0x77 和 錯誤檢查0x7A。
每個錯誤檢查都會指出發生分頁錯誤。 這些錯誤檢查有三個主要原因:
因為特定裝置上的逾時或介面卡上沒有活動,所以完整匯流排重設
選取逾時
控制器錯誤
若要判斷失敗的確切原因,請先使用 !scsikd.classxt 擴充功能,以顯示最近失敗要求的相關資訊,包括 SRB 狀態、SCSI 狀態,以及要求的感知資料。
kd> !scsikd.classext 816e96b0
Storage class device 816e96b0 with extension at 816e9768
Classpnp Internal Information at 817b4008
Failed requests:
Srb Scsi
Opcode Status Status Sense Code Sector Time Stamp
------ ------ ------ ---------- -------- ------------
2a 0a 02 03 0c 00 0000abcd 23:01:07.453 Retried
28 0a 02 03 04 00 0000abcd 23:01:07.984 Retried
dt classpnp!_CLASS_PRIVATE_FDO_DATA 817b4008 -
...
在上一個範例中,opcode 0x2A表示寫入作業,而0x28表示讀取作業。 範例中的 SCSI 狀態為 02,表示檢查條件。 感知碼提供更多錯誤資訊。
一如往常,迷你埠驅動程式開發人員會負責將錯誤碼從其硬體關聯至 SRB 狀態碼。 一般而言,逾時會與 SRB 0x0A相關聯,這是選取逾時的程式碼。 SRB 0x0e通常與完整匯流排重設相關聯,但也可以與控制器錯誤相關聯。