!pci
A extensão !pci exibe o status atual dos barramentos PCI (Interconexão de Componente Periférico), bem como todos os dispositivos conectados a esses barramentos.
!pci [Flags [Segment] [Bus [Device [Function [MinAddress MaxAddress]]]]]
Parâmetros
Sinalizadores
Especifica o nível de saída. Pode ser qualquer combinação dos bits a seguir:
Bit 0 (0x1)
Causa uma exibição detalhada.
Bit 1 (0x2)
Faz com que a exibição inclua todos os barramentos no intervalo do barramento 0 (zero) até o barramento especificado.
Bit 2 (0x4)
Faz com que a exibição inclua informações no formato de byte bruto. Se MinAddress, MaxAddress ou bit de sinalizador 0x8 estiver definido, esse bit também será definido automaticamente.
Bit 3 (0x8)
Faz com que a exibição inclua informações no formato DWORD bruto.
Bit 4 (0x10)
Faz com que a exibição inclua números de dispositivo inválidos. Se Dispositivo for definido, esse sinalizador será ignorado.
Bit 5 (0x20)
Faz com que a exibição inclua números de função inválidos.
Bit 6 (0x40)
Faz com que a exibição inclua recursos.
Bit 7 (0x80)
Faz com que a exibição inclua informações específicas do dispositivo Intel 8086.
Bit 8 (0x100)
Faz com que a exibição inclua o espaço de configuração PCI.
Bit 9 (0x200)
Faz com que a exibição inclua informações de segmento. Quando esse bit é incluído, o parâmetro Segmento deve ser incluído.
Bit 10 (0x400)
Faz com que a exibição inclua todos os segmentos válidos no intervalo do segmento 0 até o segmento especificado. Quando esse bit é incluído, o parâmetro Segmento deve ser incluído.
Segmento
Especifica o número do segmento que será exibido. Os números de segmento variam de 0 a 0xFFFF. Se Segmento for omitido, serão exibidas as informações sobre o segmento principal (segmento 0). Se Sinalizadores incluir o bit 10 (0x400), o Segmento especificará o segmento válido mais alto que será exibido.
Autocarro
Especifica o barramento que será exibido. O Barramento pode variar de 0 a 0xFF. Se for omitido, serão exibidas as informações sobre o barramento primário (barramento 0). Se Sinalizadores incluir o bit 1 (0x2), o Barramento especificará o número de barramento mais alto que será exibido.
Dispositivo
Especifica o número do dispositivo de slot para o dispositivo. Se for omitido, serão impressas as informações sobre todos os dispositivos.
Função
Especifica o número da função de slot para o dispositivo. Se for omitido, serão impressas todas as informações sobre todas as funções do dispositivo.
Endereço mínimo
Especifica o primeiro endereço a partir do qual bytes brutos ou DWORDs serão exibidos. Precisa estar entre 0 e 0xFF.
Endereço máximo
Especifica o último endereço a partir do qual bytes brutos ou DWORDs serão exibidos. Precisa estar entre 0 e 0xFF, e não pode ser menor que MinAddress.
DLL
Kext.dll
Esse comando de extensão só pode ser usado com um computador de destino baseado em x86.
Informações Adicionais
Consulte Depuração Plug and Play para ver aplicativos desse comando de extensão e alguns outros exemplos. Para ver informações sobre barramentos PCI, consulte a documentação do Kit de Driver do Windows (WDK).
Comentários
Para editar o espaço de configuração PCI, use !ecb, !ecd ou !ecw.
O exemplo a seguir exibe uma lista de todos os barramentos e seus dispositivos. Levará muito tempo para executar esse comando. Você verá um contador em movimento na parte inferior da tela enquanto o depurador verifica o sistema de destino em busca de barramentos PCI:
kd> !pci 2 ff
PCI Bus 0
00:0 8086:1237.02 Cmd[0106:.mb..s] Sts[2280:.....] Device Host bridge
0d:0 8086:7000.01 Cmd[0007:imb...] Sts[0280:.....] Device ISA bridge
0d:1 8086:7010.00 Cmd[0005:i.b...] Sts[0280:.....] Device IDE controller
0e:0 1011:0021.02 Cmd[0107:imb..s] Sts[0280:.....] PciBridge 0->1-1 PCI-PCI bridge
10:0 102b:0519.01 Cmd[0083:im....] Sts[0280:.....] Device VGA compatible controller
PCI Bus 1
08:0 10b7:9050.00 Cmd[0107:imb..s] Sts[0200:.....] Device Ethernet
09:0 9004:8178.00 Cmd[0117:imb..s] Sts[0280:.....] Device SCSI controller
Este exemplo exibe informações detalhadas sobre os dispositivos no barramento primário. O número de dois dígitos no início de cada linha é o número do dispositivo. O número de dígito único que vem depois dele é o número da função:
kd> !pci 1 0
PCI Bus 0
00:0 8086:1237.02 Cmd[0106:.mb..s] Sts[2280:.....] Device Host bridge
cf8:80000000 IntPin:0 IntLine:0 Rom:0 cis:0 cap:0
0d:0 8086:7000.01 Cmd[0007:imb...] Sts[0280:.....] Device ISA bridge
cf8:80006800 IntPin:0 IntLine:0 Rom:0 cis:0 cap:0
0d:1 8086:7010.00 Cmd[0005:i.b...] Sts[0280:.....] Device IDE controller
cf8:80006900 IntPin:0 IntLine:0 Rom:0 cis:0 cap:0
IO[4]:fff1
0e:0 1011:0021.02 Cmd[0107:imb..s] Sts[0280:.....] PciBridge 0->1-1 PCI-PCI bridge
cf8:80007000 IntPin:0 IntLine:0 Rom:0 cap:0 2sts:2280 BCtrl:6 ISA
IO:f000-ffff Mem:fc000000-fdffffff PMem:fff00000-fffff
10:0 102b:0519.01 Cmd[0083:im....] Sts[0280:.....] Device VGA compatible controller
cf8:80008000 IntPin:1 IntLine:9 Rom:80000000 cis:0 cap:0
MEM[0]:fe800000 MPF[1]:fe000008
Este exemplo mostra informações ainda mais detalhadas sobre o barramento 0 (zero), o dispositivo 0x0D e a função 0x1, incluindo o DWORDS bruto de endereços entre 0x00 e 0x3F:
kd> !pci f 0 d 1 0 3f
PCI Bus 0
0d:1 8086:7010.00 Cmd[0005:i.b...] Sts[0280:.....] Device IDE controller
cf8:80006900 IntPin:0 IntLine:0 Rom:0 cis:0 cap:0
IO[4]:fff1
00000000: 70108086 02800005 01018000 00002000
00000010: 00000000 00000000 00000000 00000000
00000020: 0000fff1 00000000 00000000 00000000
00000030: 00000000 00000000 00000000 00000000
Este exemplo exibe o espaço de configuração do segmento 1, barramento 0 e dispositivo 1:
0: kd> !pci 301 1 0 1
PCI Configuration Space (Segment:0001 Bus:00 Device:01 Function:00)
Common Header:
00: VendorID 14e4 Broadcom Corporation
02: DeviceID 16c7
04: Command 0146 MemSpaceEn BusInitiate PERREn SERREn
06: Status 02b0 CapList 66MHzCapable FB2BCapable DEVSELTiming:1
.
.
.
5a: MsgCtrl 64BitCapable MultipleMsgEnable:0 (0x1) MultipleMsgCapable:3 (0x8)
5c: MsgAddr 2d4bff00
60: MsgAddrHi 1ae09097
64: MsData 9891
Para exibir todos os dispositivos e barramentos em segmentos válidos, execute o comando !pci 602 ffff ff:
0: kd> !pci 602 ffff ff
Scanning the following PCI segments: 0 0x1
PCI Segment 0 Bus 0
01:0 14e4:16c7.10 Cmd[0146:.mb.ps] Sts[02b0:c6...] Ethernet Controller SubID:103c:1321
02:0 1000:0030.08 Cmd[0147:imb.ps] Sts[0230:c6...] LSI SCSI Controller SubID:103c:1323
02:1 1000:0030.08 Cmd[0147:imb.ps] Sts[0230:c6...] LSI SCSI Controller SubID:103c:1323
03:0 1000:0030.08 Cmd[0147:imb.ps] Sts[0230:c6...] LSI SCSI Controller SubID:103c:1323
03:1 1000:0030.08 Cmd[0147:imb.ps] Sts[0230:c6...] LSI SCSI Controller SubID:103c:1323
PCI Segment 0 Bus 0x38
01:0 14e4:1644.12 Cmd[0146:.mb.ps] Sts[02b0:c6...] Ethernet Controller SubID:10b7:1000
PCI Segment 0 Bus 0x54
00:0 103c:403b.00 Cmd[0547:imb.ps] Sts[0010:c....] HP PCI-PCI Bridge 0x54->0x55-0x55
PCI Segment 0 Bus 0x70
00:0 103c:403b.00 Cmd[0547:imb.ps] Sts[0010:c....] HP PCI-PCI Bridge 0x70->0x71-0x71
PCI Segment 0 Bus 0xa9
01:0 8086:b154.00 Cmd[0147:imb.ps] Sts[0ab0:c6.A.] Intel PCI-PCI Bridge 0xa9->0xaa-0xaa
PCI Segment 0 Bus 0xaa
04:0 1033:0035.41 Cmd[0146:.mb.ps] Sts[0210:c....] NEC USB Controller SubID:103c:1293
04:1 1033:0035.41 Cmd[0146:.mb.ps] Sts[0210:c....] NEC USB Controller SubID:103c:aa55
04:2 1033:00e0.02 Cmd[0146:.mb.ps] Sts[0210:c....] NEC USB2 Controller SubID:103c:aa55
05:0 1002:5159.00 Cmd[0187:imb..s] Sts[0290:c....] ATI VGA Compatible Controller SubID:103c:1292
PCI Segment 0 Bus 0xc6
00:0 103c:403b.00 Cmd[0547:imb.ps] Sts[0010:c....] HP PCI-PCI Bridge 0xc6->0xc7-0xc7
PCI Segment 0 Bus 0xe3
00:0 103c:403b.00 Cmd[0547:imb.ps] Sts[0010:c....] HP PCI-PCI Bridge 0xe3->0xe4-0xe4
PCI Segment 0x1 Bus 0
01:0 14e4:16c7.10 Cmd[0146:.mb.ps] Sts[02b0:c6...] Ethernet Controller SubID:103c:1321
02:0 1000:0030.08 Cmd[0147:imb.ps] Sts[0230:c6...] LSI SCSI Controller SubID:103c:1323
02:1 1000:0030.08 Cmd[0147:imb.ps] Sts[0230:c6...] LSI SCSI Controller SubID:103c:1323
03:0 1000:0030.08 Cmd[0147:imb.ps] Sts[0230:c6...] LSI SCSI Controller SubID:103c:1323
03:1 1000:0030.08 Cmd[0147:imb.ps] Sts[0230:c6...] LSI SCSI Controller SubID:103c:1323
PCI Segment 0x1 Bus 0x54
00:0 103c:403b.00 Cmd[0547:imb.ps] Sts[0010:c....] HP PCI-PCI Bridge 0x54->0x55-0x55
PCI Segment 0x1 Bus 0x55
00:0 8086:10b9.06 Cmd[0147:imb.ps] Sts[0010:c....] Intel Ethernet Controller SubID:8086:1083
PCI Segment 0x1 Bus 0x70
00:0 103c:403b.00 Cmd[0547:imb.ps] Sts[0010:c....] HP PCI-PCI Bridge 0x70->0x71-0x71
PCI Segment 0x1 Bus 0xc6
00:0 103c:403b.00 Cmd[0547:imb.ps] Sts[0010:c....] HP PCI-PCI Bridge 0xc6->0xc7-0xc7
PCI Segment 0x1 Bus 0xe3
00:0 103c:403b.00 Cmd[0547:imb.ps] Sts[0010:c....] HP PCI-PCI Bridge 0xe3->0xe4-0xe4