Compartir a través de


Análisis de controladores detenidos y Time-Outs

Al depurar un controlador de miniporte SCSI, las tres causas más comunes de bloqueos y tiempos de espera son:

  • DPC de miniporte SCSI no se está ejecutando

  • La minipuerto SCSI no puede solicitar la siguiente solicitud.

  • La miniporte SCSI no completa una solicitud, normalmente porque está esperando registros de mapa.

Si sospecha que el DPC de miniporte SCSI no se está ejecutando, use !pcr para mostrar la cola DPC para el procesador actual. Si la rutina DPC del puerto SCSI está en la cola DPC, coloque un punto de interrupción en esta rutina para determinar si se llama a esta rutina. De lo contrario, use !scsikd.scsiext en cada dispositivo. Tenga en cuenta la siguiente salida de ejemplo de la extensión !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 

Si la ranura de tiempo de espera es -1 y la ranura sin etiqueta es distinta de cero, o la ranura de tiempo de espera no es cero y se muestran solicitudes, el miniport no ha podido solicitar la siguiente solicitud.

Como alternativa, si el miniporte SCSI no completa la ranura de reintento y la ranura ocupada no es cero, es posible que la miniporte SCSI no se complete porque está esperando registros de mapa. Del mismo modo, si las ranuras sin etiquetar y pendientes no son cero, es posible que la miniporte SCSI esté esperando registros de mapa. En cualquier caso, la dirección del bloque de solicitudes SCSI (SRB) es la dirección en la ranura ocupada y la dirección de la solicitud que no se está completando. Para obtener más información sobre el SRB, use la extensión !minipkd.srb con esta dirección como entrada.

La extensión !devobj determina si el miniporte SCSI está esperando registros de mapa. Use la dirección del objeto de dispositivo del dispositivo que emite la solicitud como entrada en !devobj. Si el IRQ actual no es cero, es muy probable que la miniporte SCSI esté esperando registros de mapa.