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.