Partilhar via


Extensões para depuração de drivers de miniportes SCSI

Ao depurar drivers de miniport scsi, você pode achar as seguintes extensões de depurador úteis. As extensões gerais do depurador são listadas primeiro, seguidas por aquelas específicas à depuração de miniportes SCSI.

!devobj
A extensão !devobj exibe informações detalhadas sobre um DEVICE_OBJECT. Se o campo Irp Atual não for nulo, isso poderá ser causado pelo driver SCSI aguardando registros de mapa.

Veja um exemplo:

0: kd> !devobj 8633da70
Device object (8633da70) is for:
 adpu160m1 \Driver\adpu160m DriverObject 8633eeb8
Current Irp 860ef008 RefCount 0 Type 00000004 Flags 00000050
Dacl e129871c DevExt 8633db28 DevObjExt 8633dfd0
ExtensionFlags (0000000000)
AttachedTo (Lower) 863b2978 \Driver\PCI
Device queue is not busy. 

!errlog
A extensão !errlog exibe o conteúdo de todas as entradas pendentes no log de erros do sistema de E/S.

!Objeto
A extensão de objeto ! exibe informações sobre um objeto do sistema. Essa extensão exibe todos os dispositivos SCSI.

Por exemplo:

0: kd> !object \device\scsi
Object: e12a2520  Type: (863d12c8) Directory
    ObjectHeader: e12a2508
    HandleCount: 0  PointerCount: 9
    Directory Object: e1001100  Name: Scsi

    Hash Address  Type          Name
    ---- -------  ----          ----
     04  86352040 Device        adpu160m1Port3Path0Target6Lun0
     11  86353040 Device        adpu160m1Port3Path0Target1Lun0
     13  86334a70 Device        lp6nds351
     22  862e6040 Device        adpu160m1Port3Path0Target0Lun0
     24  8633da70 Device        adpu160m1
     25  86376040 Device        adpu160m2
     34  862e5040 Device        adpu160m1Port3Path0Target2Lun0 

!Pcr
A extensão !pcr exibe informações detalhadas sobre a PCR (Região de Controle do Processador) em um processador. As informações incluem os itens na fila DPC, o que pode ser útil. quando você está depurando um driver paralisado ou um tempo limite.

!minipkd.help
A extensão !minipkd.help exibe uma lista de todos os comandos de extensão Minipkd.dll.

Se uma mensagem de erro semelhante à seguinte aparecer, ela indicará que o caminho do símbolo está incorreto e não aponta para a versão correta dos símbolos Scsiport.sys.

minipkd error (0) <path> ... \minipkd\minipkd.c @ line 435

O comando .sympath (Definir Caminho do Símbolo) pode ser usado para exibir o caminho atual e alterar o caminho. O comando .reload (Módulo recarregar) recarregará símbolos do caminho atual.

Adaptador !minipkd.adapter
A extensão !minipkd.adapter exibe informações detalhadas sobre um adaptador especificado. O Adaptador pode ser encontrado examinando o campo DevExt na exibição !minipkd.adapters .

!minipkd.adapters
A extensão !minipkd.adapters exibe todos os adaptadores que funcionam com o driver de Porta SCSI que foram identificados pelo Windows e os dispositivos individuais associados a cada adaptador.

Veja um exemplo:

0: kd> !minipkd.adapters
Adapter \Driver\lp6nds35     DO 86334a70         DevExt 86334b28
Adapter \Driver\adpu160m     DO 8633da70         DevExt 8633db28
 LUN 862e60f8 @(0,0,0) c ev     pnp(00/ff) pow(0,0) DevObj 862e6040
 LUN 863530f8 @(0,1,0) c ev p d pnp(00/ff) pow(0,0) DevObj 86353040
 LUN 862e50f8 @(0,2,0) c ev     pnp(00/ff) pow(0,0) DevObj 862e5040
 LUN 863520f8 @(0,6,0)   ev     pnp(00/ff) pow(0,0) DevObj 86352040
Adapter \Driver\adpu160m     DO 86376040         DevExt 863760f8 

Uma mensagem de erro semelhante à seguinte indica que o caminho do símbolo está incorreto e não aponta para a versão correta dos símbolos de Scsiport.sys ou que o Windows não identificou nenhum adaptador que funcione com o driver de porta SCSI:

minipkd error (0) <path> ... \minipkd\minipkd.c @ line 435

Se o comando de extensão !minipkd.help retornar informações de ajuda com êxito, os símbolos da Porta SCSI estarão corretos.

!minipkd.exports Adaptador
A extensão !minipkd.exports exibe os endereços das exportações de miniporto para o adaptador especificado.

!minipkd.lun {LUN | Dispositivo}
A extensão !minipkd.lun exibe informações detalhadas sobre uma LUN (Extensão de Unidade Lógica) especificada. O LUN pode ser especificado por seu endereço (que pode ser encontrado examinando o campo LUN na exibição !minipkd.adapters ) ou por seu objeto de dispositivo físico (que pode ser encontrado no campo DevObj da exibição !minipkd.adapters ).

!minipkd.portconfig PortConfig
A extensão !minipkd.portconfig exibe informações detalhadas sobre um PORT_CONFIGURATION_DATA especificado. O PortConfig pode ser encontrado no campo Informações de Configuração de Porta da exibição !minipkd.adapter .

!minipkd.req {Adapter | Dispositivo}
A extensão !minipkd.req exibe informações sobre todas as solicitações ativas no momento no adaptador especificado ou no dispositivo LUN.

!minipkd.srb SRB
A extensão !minipkd.srb exibe informações detalhadas sobre um SRB (bloco de solicitação SCSI) especificado. O SRB é especificado por endereço. Os endereços de todas as solicitações ativas no momento podem ser encontrados nos campos SRB da saída do comando !minipkd.req .

!scsikd.classext [Dispositivo [Nível]]
A extensão !scsikd.classext exibe informações detalhadas sobre um dispositivo de classe Plug and Play (PnP) especificado ou uma lista de todos esses dispositivos. O Dispositivo é o objeto do dispositivo ou a extensão de dispositivo do dispositivo PnP de classe. Se Device for omitido, uma lista de todas as extensões PnP de classe será exibida.

Veja um exemplo:

0: kd> !scsikd.classext 

 ' !scsikd.classext 8633e3f0 '   (             ) "IBM     " / "DDYS-T09170M    " / "S93E" / "        XBY45906"
 ' !scsikd.classext 86347b48 '   (paging device) "IBM     " / "DDYS-T09170M    " / "S80D" / "        VDA60491"
  ' !scsikd.classext 86347360 '   (             ) "UNISYS  " / "003451ST34573WC " / "5786" / "HN0220750000181300L6"
  ' !scsikd.classext 861d1898 '   (             ) "" / "MATSHITA CD-ROM CR-177" / "7T03" / ""

 usage: !classext <class fdo> <level [0-2]> 

Dispositivo !scsikd.scsiext
A extensão !scsikd.scsiext exibe informações detalhadas sobre uma extensão de porta SCSI especificada. O Dispositivo pode ser o objeto do dispositivo ou a extensão de dispositivo do adaptador ou do LUN.

Estes são alguns exemplos:

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
  < ..omitted.. >
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

0: kd> !scsikd.scsiext 8633da70 
Common Extension:
   < ..omitted.. >
Adapter Extension:
  Port 3     IsPnp VirtualSlot HasInterrupt
  LowerPdo 0x84f9fb68   HwDevExt 0x84634004   Active Requests 0x00000000
  MaxBus 0x03   MaxTarget 0x40   MaxLun 0x08
  Port Flags (0x00001000): PD_DISCONNECT_RUNNING
  NonCacheExt 0x850d4000  IoBase 0xd80f0000   Int 0x23  < ..omitted.. > 

Endereço !scsikd.srbdata
A extensão !scsikd.srbdata exibe informações detalhadas sobre um bloco de rastreamento de SRB_DATA especificado.