共用方式為


分析停止的驅動程式和 Time-Outs

偵錯 SCSI 迷你埠驅動程式時,最常見的停止回應和逾時原因如下:

  • SCSI 迷你埠 DPC 未執行

  • SCSI 迷你埠無法要求下一個要求

  • SCSI 迷你埠未完成要求,通常是因為它正在等候地圖暫存器。

如果您懷疑 SCSI 迷你埠 DPC 未執行,請使用 !pc 來顯示目前處理器的 DPC 佇列。 如果 SCSI 埠 DPC 常式位於 DPC 佇列中,請在此常式上放置中斷點,以判斷是否呼叫此常式。 否則,請在每部裝置上使用 !scsikd.scsiext 。 請考慮 下列來自 !scsikd.scsiext 延伸模組的範例輸出:

0: kd> !scsikd.scsiext 86353040 
Common Extension:
   < ..omitted.. >
Logical Unit Extension:
  Address (3, 0, 1, 0) Claimed  Enumerated Visible
  LuFlags (0x00000000):
  Retry 0x00          Key 0x008889ff
  Lock 0x00000000  Pause 0x00000000   CurrentLock: 0x00000000
  HwLuExt 0x862e6f00  Adapter 0x8633db28  Timeout 0x0000000a
  NextLun 0x00000000  ReadyLun 0x00000000
  Pending 0x00000000  Busy 0x00000000     Untagged 0x00000000
 
  . . .  
 
Request list @0x86353200:
      Tick count is 2526
      SrbData 8615d700  Srb 8611f4fc  Irp 8611f2b8   Key 60197  <1s
      SrbData 85e72868  Srb 86100c3c Irp 861009f8   Key e29dc7  <1s 

如果逾時位置為 -1 且未標記的插槽為非零,或逾時位置為非零且顯示要求,則迷你埠無法要求下一個要求。

或者,如果重試位置和忙碌位置為非零,SCSI 迷你埠可能無法完成要求,因為它正在等候地圖暫存器。 同樣地,如果未標記和擱置的插槽為非零,SCSI 迷你埠可能會等待地圖暫存器。 在這兩種情況下,SCSI 要求區塊的位址 (SRB) 是忙碌位置中的位址,以及未完成的要求位址。 如需 SRB 的詳細資訊,請使用 !minipkd.srb 延伸模組搭配此位址作為輸入。

!devobj延伸模組會判斷 SCSI 迷你埠是否正在等候地圖暫存器。 使用發出要求作為 !devobj輸入之裝置的裝置物件位址。 如果目前的 IRQ 不是零,則 SCSI 迷你埠可能正在等候地圖暫存器。