!pci

L'extension !pci affiche l’état actuel des bus PCI (interconnexion de composants périphériques) ainsi que tous les appareils attachés à ces bus.

!pci [Flags [Segment] [Bus [Device [Function [MinAddress MaxAddress]]]]]

Paramètres

Drapeaux
Spécifie le niveau de sortie. Peut être n’importe quelle combinaison des bits suivants :

Bit 0 (0x1)
Produit un affichage détaillé.

Bit 1 (0x2)
Provoque l’inclusion de tous les bus de la plage entre le bus 0 (zéro) et le bus spécifié dans l’affichage.

Bit 2 (0x4)
Provoque l'inclusion des informations au format d'octet brut dans l’affichage. Si MinAddress, MaxAddress ou le bit d’indicateur 0x8 est défini, ce bit est automatiquement défini.

Bit 3 (0x8)
Provoque l'inclusion des informations au format DWORD brut dans l’affichage.

Bit 4 (0x10)
Provoque l'inclusion des numéros d’appareil non valides dans l'affichage. Si Device est spécifié, cet indicateur est ignoré.

Bit 5 (0x20)
Provoque l'inclusion des numéros de fonction non valides dans l'affichage.

Bit 6 (0x40)
Provoque l'inclusion des fonctionnalités dans l’affichage.

Bit 7 (0x80)
Provoque l'inclusion des informations spécifiques à l’appareil Intel P8086 dans l’affichage

Bit 8 (0x100)
Provoque l'inclusion de l’espace de configuration PCI dans l'affichage.

Bit 9 (0x200)
Provoque l’inclusion des informations de segment dans l'affichage. Lorsque ce bit est inclus, le paramètre Segment doit être inclus.

Bit 10 (0x400)
Provoque l'inclusion dans l'affichage de tous les segments valides dans la plage comprise entre le segment 0 et le segment spécifié. Lorsque ce bit est inclus, le paramètre Segment doit être inclus.

Segment
Spécifie le numéro de segment à afficher. Les numéros de segment vont de 0 à 0xFFFF. Si Segment est omis, des informations sur le segment principal (segment 0) sont affichées. Si Flags inclut le bit 10 (0x400), Segment spécifie le segment valide au numéro le plus élevé à afficher.

Bus
Spécifie le bus à afficher. La valeur de Bus peut aller de 0 à 0xFF. Si le champ est omis, des informations sur le bus principal (bus 0) sont affichées. Si Flags inclut le bit 1 (0x2), Bus spécifie le numéro de bus le plus élevé à afficher.

Appareil
Spécifie le numéro d’appareil d’emplacement de l’appareil. Si le champ est omis, des informations sur tous les appareils sont imprimées.

Fonction
Spécifie le numéro de fonction d’emplacement de l’appareil. Si le champ est omis, toutes les informations relatives à l'ensemble des fonctions d’appareil sont imprimées.

MinAddress
Spécifie la première adresse à partir de laquelle les octets bruts ou DWORD doivent être affichés. Ce nombre doit être compris entre 0 et 0xFF.

MaxAddress
Spécifie la dernière adresse à partir de laquelle les octets bruts ou DWORD doivent être affichés. La valeur doit être comprise entre 0 et 0xFF, et pas inférieure à MinAddress.

DLL

Kext.dll

Cette commande d’extension ne peut être utilisée qu’avec un ordinateur cible x86.

Informations supplémentaires

Consultez Débogage Plug-and-Play pour les applications de cette commande d’extension et des exemples supplémentaires. Pour des informations sur les bus PCI, consultez la documentation du Kit de développement Windows (WDK).

Notes

Pour modifier l’espace de configuration PCI, utilisez !ecb, !ecd ou !ecw.

L’exemple suivant affiche la liste de tous les bus et de leurs appareils. Cette commande prend beaucoup de temps à s’exécuter. Vous verrez un compteur mobile en bas de l’affichage pendant que le débogueur recherche les bus PCI dans le système cible :

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

Cet exemple affiche des informations détaillées sur les appareils au niveau du bus principal. Le numéro à deux chiffres au début de chaque ligne est le numéro d’appareil ; le nombre à un chiffre suivant est le numéro de fonction :

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  

Cet exemple montre des informations encore plus détaillées sur le bus 0 (zéro), les 0x0D d’appareils et les 0x1 de fonction, y compris le DWORDS brut à partir d’adresses entre 0x00 et 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

Cet exemple montre comment afficher l’espace de configuration du segment 1, bus 0, appareil 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

Pour afficher tous les appareils et bus sur des segments valides, émettez la commande !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