hal!HalGetBusDataByOffset函数分析得到Device (P2P0)PCI设备空间前4个字节不是0xFFFF说明PCI设备存在
1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=899050a0 ecx=00000100 edx=8996d118 esi=00000000 edi=00000000
eip=804f25ee esp=f791abdc ebp=f791ac48 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
hal!HalGetBusDataByOffset:
804f25ee 55 push ebp
1: kd> be 48
1: kd> be 54
1: kd> dv
BusDataType = PCIConfiguration (0n4)
BusNumber = 0
SlotNumber = 0x11
Buffer = 0x898f6e44
Offset = 0
Length = 4
bus = struct _BUS_HANDLER
1: kd> kc
00 hal!HalGetBusDataByOffset
01 ACPI!PciConfigSpaceHandlerWorker
02 ACPI!GetPciAddressWorker
03 ACPI!ACPIGetWorkerForInteger
04 ACPI!AsyncCallBack
05 ACPI!RunContext
06 ACPI!DispatchCtxtQueue
07 ACPI!StartTimeSlicePassive
08 ACPI!ACPIWorker
09 nt!PspSystemThreadStartup
0a nt!KiThreadStartup
Device (P2P0)
{
Name (_ADR, 0x00110000) // _ADR: Address
1: kd> gu
Breakpoint 53 hit
eax=00000004 ebx=899050a0 ecx=00000000 edx=00000000 esi=00000000 edi=00000000
eip=f740d8c7 esp=f791abf8 ebp=f791ac48 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
ACPI!PciConfigSpaceHandlerWorker+0x29b:
f740d8c7 8bf0 mov esi,eax
1: kd> db 0x898f6e44
898f6e44 ad 15 90 07 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
15ad 0790
DevNode 0x899ff848 for PDO 0x89cb4e38 ====第九个
InstancePath is "PCI\VEN_15AD&DEV_0790&SUBSYS_00000000&REV_02\3&61aaa01&0&88"
ServiceName is "pci"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
第2个:P2P1没有接PCI设备
1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=89987378 ecx=00000100 edx=899752d4 esi=00000000 edi=00000000
eip=804f25ee esp=f791abdc ebp=f791ac48 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
hal!HalGetBusDataByOffset:
804f25ee 55 push ebp
1: kd> dv
BusDataType = PCIConfiguration (0n4)
BusNumber = 0
SlotNumber = 0x12
Buffer = 0x898f4e44
Offset = 0
Length = 4
bus = struct _BUS_HANDLER
1: kd> kc
00 hal!HalGetBusDataByOffset
01 ACPI!PciConfigSpaceHandlerWorker
02 ACPI!GetPciAddressWorker
03 ACPI!ACPIGetWorkerForInteger
04 ACPI!AsyncCallBack
05 ACPI!RunContext
06 ACPI!DispatchCtxtQueue
07 ACPI!StartTimeSlicePassive
08 ACPI!ACPIWorker
09 nt!PspSystemThreadStartup
0a nt!KiThreadStartup
1: kd> gu
Breakpoint 53 hit
eax=00000002 ebx=89987378 ecx=00000000 edx=00000002 esi=00000000 edi=00000000
eip=f740d8c7 esp=f791abf8 ebp=f791ac48 iopl=0 nv up ei ng nz na po cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000283
ACPI!PciConfigSpaceHandlerWorker+0x29b:
f740d8c7 8bf0 mov esi,eax
1: kd> db 0x898f4e44
898f4e44 ff ff 00 00 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
898f4e54 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
898f4e64 71 9b 41 f7 78 53 97 89-64 31 8f 89 54 45 52 4d q.A.xS..d1..TERM
898f4e74 34 00 00 00 01 00 00 00-34 7a 42 f7 f7 53 97 89 4.......4zB..S..
898f4e84 00 00 00 00 00 00 00 00-10 93 43 f7 00 00 00 00 ..........C.....
898f4e94 01 00 00 00 02 00 00 00-64 31 8f 89 1c 31 8f 89 ........d1...1..
898f4ea4 54 45 52 4d 34 00 00 00-01 00 00 00 34 7a 42 f7 TERM4.......4zB.
898f4eb4 f6 53 97 89 00 00 00 00-00 00 00 00 70 91 43 f7 .S..........p.C.
第3个:P2P2没有接PCI设备
1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=89900fc0 ecx=00000100 edx=899590d4 esi=00000000 edi=00000000
eip=804f25ee esp=f791abdc ebp=f791ac48 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
hal!HalGetBusDataByOffset:
804f25ee 55 push ebp
1: kd> dv
BusDataType = PCIConfiguration (0n4)
BusNumber = 0
SlotNumber = 0x13
Buffer = 0x898f2e44
Offset = 0
Length = 4
bus = struct _BUS_HANDLER
1: kd> kc
00 hal!HalGetBusDataByOffset
01 ACPI!PciConfigSpaceHandlerWorker
02 ACPI!GetPciAddressWorker
03 ACPI!ACPIGetWorkerForInteger
04 ACPI!AsyncCallBack
05 ACPI!RunContext
06 ACPI!DispatchCtxtQueue
07 ACPI!StartTimeSlicePassive
08 ACPI!ACPIWorker
09 nt!PspSystemThreadStartup
0a nt!KiThreadStartup
1: kd> gu
Breakpoint 53 hit
eax=00000002 ebx=89900fc0 ecx=00000000 edx=00000002 esi=00000000 edi=00000000
eip=f740d8c7 esp=f791abf8 ebp=f791ac48 iopl=0 nv up ei ng nz na po cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000283
ACPI!PciConfigSpaceHandlerWorker+0x29b:
f740d8c7 8bf0 mov esi,eax
1: kd> dd 0x898f2e44
898f2e44 0000ffff 00000000 00000000 00000020
898f2e54 00000003 55464341 00000018 00010003
898f2e64 f7419b71 89959178 898f1164 4d524554
898f2e74 00000034 00000001 f7427a34 899591f7
898f2e84 00000000 00000000 f7439310 00000000
898f2e94 00000001 00000002 898f1164 898f111c
898f2ea4 4d524554 00000034 00000001 f7427a34
898f2eb4 899591f6 00000000 00000000 f7439170
1: kd> db 0x898f2e44
898f2e44 ff ff 00 00 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
898f2e54 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
898f2e64 71 9b 41 f7 78 91 95 89-64 11 8f 89 54 45 52 4d q.A.x...d...TERM
898f2e74 34 00 00 00 01 00 00 00-34 7a 42 f7 f7 91 95 89 4.......4zB.....
898f2e84 00 00 00 00 00 00 00 00-10 93 43 f7 00 00 00 00 ..........C.....
898f2e94 01 00 00 00 02 00 00 00-64 11 8f 89 1c 11 8f 89 ........d.......
898f2ea4 54 45 52 4d 34 00 00 00-01 00 00 00 34 7a 42 f7 TERM4.......4zB.
898f2eb4 f6 91 95 89 00 00 00 00-00 00 00 00 70 91 43 f7 ............p.C.
第四个:P2P3没有接PCI设备
1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=89906d30 ecx=00000100 edx=89961268 esi=00000000 edi=00000000
eip=804f25ee esp=f791abdc ebp=f791ac48 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
hal!HalGetBusDataByOffset:
804f25ee 55 push ebp
1: kd> dv
BusDataType = PCIConfiguration (0n4)
BusNumber = 0
SlotNumber = 0x14
Buffer = 0x898f0e44
Offset = 0
Length = 4
bus = struct _BUS_HANDLER
1: kd> kc
00 hal!HalGetBusDataByOffset
01 ACPI!PciConfigSpaceHandlerWorker
02 ACPI!GetPciAddressWorker
03 ACPI!ACPIGetWorkerForInteger
04 ACPI!AsyncCallBack
05 ACPI!RunContext
06 ACPI!DispatchCtxtQueue
07 ACPI!StartTimeSlicePassive
08 ACPI!ACPIWorker
09 nt!PspSystemThreadStartup
0a nt!KiThreadStartup
1: kd> gu
Breakpoint 53 hit
eax=00000002 ebx=89906d30 ecx=00000000 edx=00000002 esi=00000000 edi=00000000
eip=f740d8c7 esp=f791abf8 ebp=f791ac48 iopl=0 nv up ei ng nz na po cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000283
ACPI!PciConfigSpaceHandlerWorker+0x29b:
f740d8c7 8bf0 mov esi,eax
1: kd> db 0x898f0e44
898f0e44 ff ff 00 00 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
898f0e54 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
898f0e64 71 9b 41 f7 0c 13 96 89-64 f1 8e 89 54 45 52 4d q.A.....d...TERM
898f0e74 34 00 00 00 01 00 00 00-34 7a 42 f7 8b 13 96 89 4.......4zB.....
898f0e84 00 00 00 00 00 00 00 00-10 93 43 f7 00 00 00 00 ..........C.....
898f0e94 01 00 00 00 02 00 00 00-64 f1 8e 89 1c f1 8e 89 ........d.......
898f0ea4 54 45 52 4d 34 00 00 00-01 00 00 00 34 7a 42 f7 TERM4.......4zB.
898f0eb4 8a 13 96 89 00 00 00 00-00 00 00 00 70 91 43 f7 ............p.C.
第二部分:
PCI0设备扩展下的实际建立的子设备扩展共9+4*8=41个--重要中间结果--说明这41个设备存在
dsdt.dsl:1767: Device (AGP) 0x10000 "PCI\VEN_8086&DEV_7191&SUBSYS_00000000&REV_01\3&61aaa01&0&08" 1
dsdt.dsl:1772: Device (ISA) 0x70000 "PCI\VEN_8086&DEV_7110&SUBSYS_00000000&REV_08\3&61aaa01&0&38"
dsdt.dsl:2272: Device (PWR) 0x00070003
dsdt.dsl:2284: Device (USB) 0x00070002
dsdt.dsl:2294: Device (IDE) 0x00070001 "PCI\VEN_8086&DEV_7111&SUBSYS_197615AD&REV_01\3&61aaa01&0&39"
dsdt.dsl:5026: Device (EXPL) "ACPI\PNP0C02\4"
dsdt.dsl:5099: Device (DMAR) "ACPI\PNP0C02"
dsdt.dsl:5134: Device (VMGC) "ACPI\VMW0001"
p2p0 110000 "PCI\VEN_15AD&DEV_0790&SUBSYS_00000000&REV_02\3&61aaa01&0&88" 2
p2p1 120000
p2p2 130000
p2p3 140000
Device (PE40) 150000 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&A8" 3
Device (PE50) 160000 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B0" b
Device (PE60) 170000 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B8" 13
Device (PE70) 180000 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&C0" 1b