共用方式為


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通常與完整匯流排重設相關聯,但也可以與控制器錯誤相關聯。