Verificações de bugs para depuração de miniportes SCSI
Há principalmente duas verificações de bug que surgem no curso da depuração de um driver de miniporto SCSI: marcar 0x77 de bugs (KERNEL_STACK_INPAGE_ERROR) e marcar 0x7A de bugs (KERNEL_DATA_INPAGE_ERROR). Para obter detalhes completos de seus parâmetros, consulte 0x77 de Verificação de Bugs e 0x7A de Verificação de Bugs.
Cada uma dessas verificações de bug indica que ocorreu um erro de paginação. Há três main causas para essas verificações de bugs:
Redefinição completa do barramento devido a um tempo limite em um dispositivo específico ou nenhuma atividade em um adaptador
Tempo limite de seleção
Erros do controlador
Para determinar a causa precisa da falha, comece usando a extensão !scsikd.classext, que exibe informações sobre solicitações com falha recentemente, incluindo os dados SRB status, SCSI status e sense da solicitação.
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 -
...
No exemplo anterior, opcode 0x2A indica uma operação de gravação e 0x28 indica uma operação de leitura. O status SCSI no exemplo é 02, o que indica uma condição marcar. Os códigos de sentido fornecem mais informações de erro.
Como sempre, os desenvolvedores de driver de miniport são responsáveis por associar códigos de erro de seu hardware aos códigos de status SRB. Normalmente, os tempos limite são associados ao 0x0A SRB, o código para um tempo limite de seleção. O 0x0e SRB normalmente está associado a uma redefinição de barramento completa, mas também pode ser associado a erros do controlador.