塔城地区网站建设_网站建设公司_建站流程_seo优化
2026/1/22 17:50:55 网站建设 项目流程

hal!HalGetBusDataByOffset函数分析得到Device (PE40)PCI设备空间前4个字节不是0xFFFF说明PCI设备存在--非常重要

第一部分:参考:

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

第二部分:

第5个:PE40是PCI设备

Device (PE40)
{
Name (_ADR, 0x00150000) // _ADR: Address


1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=899bf520 ecx=00000100 edx=89946068 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 = 0x15
Buffer = 0x898eee44
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=00000004 ebx=899bf520 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 0x898eee44
898eee44 ad 15 a0 07 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
898eee54 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........

第6个:PE50是PCI设备

1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=89900e88 ecx=00000100 edx=89946910 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 = 0x16
Buffer = 0x898ece44
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=00000004 ebx=89900e88 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 0x898ece44
898ece44 ad 15 a0 07 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
898ece54 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
898ece64 71 9b 41 f7 b4 69 94 89-64 b1 8e 89 54 45 52 4d q.A..i..d...TERM
898ece74 34 00 00 00 01 00 00 00-34 7a 42 f7 33 6a 94 89 4.......4zB.3j..
898ece84 00 00 00 00 00 00 00 00-10 93 43 f7 00 00 00 00 ..........C.....
898ece94 01 00 00 00 02 00 00 00-64 b1 8e 89 1c b1 8e 89 ........d.......
898ecea4 54 45 52 4d 34 00 00 00-01 00 00 00 34 7a 42 f7 TERM4.......4zB.
898eceb4 32 6a 94 89 00 00 00 00-00 00 00 00 70 91 43 f7 2j..........p.C.

第7个:PE60是PCI设备

1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=89900dc8 ecx=00000100 edx=899471d8 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 = 0x17
Buffer = 0x898eae44
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

windbg> .open -a fffffffff7407433
1: kd> gu
Breakpoint 53 hit
eax=00000004 ebx=89900dc8 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 0x898eae44
898eae44 ad 15 a0 07 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
898eae54 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
898eae64 71 9b 41 f7 7c 72 94 89-64 91 8e 89 54 45 52 4d q.A.|r..d...TERM
898eae74 34 00 00 00 01 00 00 00-34 7a 42 f7 fb 72 94 89 4.......4zB..r..
898eae84 00 00 00 00 00 00 00 00-10 93 43 f7 00 00 00 00 ..........C.....
898eae94 01 00 00 00 02 00 00 00-64 91 8e 89 1c 91 8e 89 ........d.......
898eaea4 54 45 52 4d 34 00 00 00-01 00 00 00 34 7a 42 f7 TERM4.......4zB.
898eaeb4 fa 72 94 89 00 00 00 00-00 00 00 00 70 91 43 f7 .r..........p.C.

1: kd> kc
#
00 ACPI!RestartCtxtCallback
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> bp acpi!runcontext
breakpoint 39 redefined


1: kd> g
Breakpoint 45 hit
eax=00000000 ebx=f743a948 ecx=f743a948 edx=00002700 esi=89901000 edi=89902fe4
eip=f741d82f esp=f791ad14 ebp=f791ad34 iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000286
ACPI!RunContext+0x11f:
f741d82f ff570c call dword ptr [edi+0Ch] ds:0023:89902ff0={ACPI!ProcessEvalObj (f741ef2b)}


1: kd> bp ACPI!ACPIGetWorkerForInteger
1: kd> g
Breakpoint 62 hit
eax=00000049 ebx=899b00ac ecx=8997e000 edx=00002707 esi=89901000 edi=899bf4a8
eip=f7407364 esp=f791acdc ebp=f791ad10 iopl=0 nv up ei ng nz ac pe cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000297
ACPI!ACPIGetWorkerForInteger:
f7407364 55 push ebp
1: kd> kc
#
00 ACPI!ACPIGetWorkerForInteger
01 ACPI!AsyncCallBack
02 ACPI!RunContext
03 ACPI!DispatchCtxtQueue
04 ACPI!StartTimeSlicePassive
05 ACPI!ACPIWorker
06 nt!PspSystemThreadStartup
07 nt!KiThreadStartup
1: kd> dv
AcpiObject = 0x899b00ac
Status = 0n0
Result = 0x899bf4d4
Context = 0x899bf4a8
freeData = 0x00 ''
1: kd> db 0x899b00ac
899b00ac 68 00 9b 89 f0 00 9b 89-ac ff 9a 89 00 00 00 00 h...............
899b00bc 5f 42 42 4e 30 f3 9a 89-68 00 9b 89 00 00 01 00 _BBN0...h.......
899b00cc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899b00dc 00 00 00 00 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...
899b00ec 00 f0 9a 89 ac 00 9b 89-90 01 9b 89 ac ff 9a 89 ................
899b00fc 00 00 00 00 5f 41 44 52-30 f3 9a 89 ac 00 9b 89 ...._ADR0.......
899b010c 00 00 01 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899b011c 00 00 00 00 00 00 00 00-00 00 00 00 48 4f 52 47 ............HORG
1: kd> dt ACPI_GET_REQUEST 0x899bf4a8
+0x000 Flags : 0x48040002
+0x000 UFlags : __unnamed
+0x004 ObjectID : 0x4e42425f
+0x008 ListEntry : _LIST_ENTRY [ 0x89900e18 - 0x898a81f8 ]
+0x010 DeviceExtension : (null)
+0x014 AcpiObject : 0x899affac _NSObj
+0x018 CallBackRoutine : 0xf740ceea void ACPI!GetPciAddressWorker+0
+0x01c CallBackContext : 0x89859528 Void
+0x020 Buffer : 0x89859544 -> (null)
+0x024 BufferSize : (null)
+0x028 Status : 0n0
+0x02c ResultData : _ObjData

1: kd> kc
#
00 ACPI!GetPciAddressWorker
01 ACPI!ACPIGetWorkerForInteger
02 ACPI!AsyncCallBack
03 ACPI!RunContext
04 ACPI!DispatchCtxtQueue
05 ACPI!StartTimeSlicePassive
06 ACPI!ACPIWorker
07 nt!PspSystemThreadStartup
08 nt!KiThreadStartup
1: kd> dv
AcpiObject = 0x899b00ac
Status = 0n0
Result = 0x00000000
Context = 0x89859528
buffer = unsigned char [64] ""
1: kd> dt GET_ADDRESS_CONTEXT 0x89859528
ACPI!GET_ADDRESS_CONTEXT
+0x000 PciObject : 0x8994777c _NSObj
+0x004 Bus : 0x899c0f80 ""
+0x008 Slot : 0x899c0f7c _PCI_SLOT_NUMBER
+0x00c ParentBus : 0 ''
+0x010 ParentSlot : _PCI_SLOT_NUMBER
+0x014 Flags : 0x2108
+0x018 Address : 0x180000
+0x01c BaseBusNumber : 0
+0x020 RunCompletion : 0n1
+0x024 CompletionRoutine : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker+0
+0x028 CompletionContext : 0x899c0f48 Void


#define PCISUPP_CHECKED_BBN 0x2000

#define PCISUPP_GOT_SLOT_INFO 0x100

#define PCISUPP_CHECKED_ADR 8

1: kd> kc
#
00 ACPI!PciConfigSpaceHandlerWorker
01 ACPI!GetPciAddressWorker
02 ACPI!ACPIGetWorkerForInteger
03 ACPI!AsyncCallBack
04 ACPI!RunContext
05 ACPI!DispatchCtxtQueue
06 ACPI!StartTimeSlicePassive
07 ACPI!ACPIWorker
08 nt!PspSystemThreadStartup
09 nt!KiThreadStartup
1: kd> dv
AcpiObject = 0x899b00ac
CompletionStatus = 0n0
Result = 0x00000000
Context = 0x899c0f48

1: kd> dt PCI_CONFIG_STATE 0x899c0f48
ACPI!PCI_CONFIG_STATE
+0x000 AccessType : 0
+0x004 OpRegion : 0x89947aa0 _NSObj
+0x008 Address : 0
+0x00c Size : 4
+0x010 Data : 0x898e8e44 -> 0
+0x014 Context : 0
+0x018 CompletionHandler : 0xf7420914 Void
+0x01c CompletionContext : 0x898e70ac Void
+0x020 PciObj : 0x8994777c _NSObj
+0x024 ParentObj : (null)
+0x028 CompletionHandlerType : 0
+0x02c Flags : 0x1100
+0x030 RunCompletion : 0n1
+0x034 Slot : _PCI_SLOT_NUMBER
+0x038 Bus : 0 ''
+0x039 IsPciDeviceResult : 0 ''
1: kd> u 0xf7420914
ACPI!RestartCtxtCallback [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\sched.c @ 401]:
f7420914 55 push ebp
f7420915 8bec mov ebp,esp
f7420917 56 push esi
f7420918 8b7508 mov esi,dword ptr [ebp+8]
f742091b 57 push edi
f742091c 6a01 push 1
f742091e bf603f43f7 mov edi,offset ACPI!`string' (f7433f60)
f7420923 57 push edi
1: kd> db 0x8994777c
8994777c b4 6e 94 89 44 80 94 89-ac ff 9a 89 c0 77 94 89 .n..D........w..
8994778c 50 45 37 30 30 f3 9a 89-38 77 94 89 00 00 06 00 PE700...8w......
8994779c 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899477ac d8 f7 93 89 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...
899477bc 00 20 94 89 20 7c 94 89-64 78 94 89 7c 77 94 89 . .. |..dx..|w..
899477cc 00 00 00 00 5f 41 44 52-30 f3 9a 89 7c 77 94 89 ...._ADR0...|w..
899477dc 00 00 01 00 00 00 00 00-00 00 18 00 00 00 00 00 ................
899477ec 00 00 00 00 00 00 00 00-00 00 00 00 48 50 4b 47 ............HPKG
1: kd> dt _PCI_SLOT_NUMBER 0x899c0f7c -r
hal!_PCI_SLOT_NUMBER
+0x000 u : __unnamed
+0x000 bits : __unnamed
+0x000 DeviceNumber : 0y11000 (0x18)
+0x000 FunctionNumber : 0y000
+0x000 Reserved : 0y000000000000000000000000 (0)
+0x000 AsULONG : 0x18


Device (PE70)
{
Name (_ADR, 0x00180000) // _ADR: Address

第8个:PE70是PCI设备

1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=899c0f48 ecx=00000100 edx=89947aa0 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 = 0x18
Buffer = 0x898e8e44
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=00000004 ebx=899c0f48 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 0x898e8e44
898e8e44 ad 15 a0 07 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
898e8e54 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
898e8e64 71 9b 41 f7 44 7b 94 89-64 71 8e 89 54 45 52 4d q.A.D{..dq..TERM
898e8e74 34 00 00 00 01 00 00 00-34 7a 42 f7 c3 7b 94 89 4.......4zB..{..
898e8e84 00 00 00 00 00 00 00 00-10 93 43 f7 00 00 00 00 ..........C.....
898e8e94 01 00 00 00 02 00 00 00-64 71 8e 89 1c 71 8e 89 ........dq...q..
898e8ea4 54 45 52 4d 34 00 00 00-01 00 00 00 34 7a 42 f7 TERM4.......4zB.
898e8eb4 c2 7b 94 89 00 00 00 00-00 00 00 00 70 91 43 f7 .{..........p.C.


1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=899ae8e8 ecx=00000100 edx=89948368 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 = 0x19
Buffer = 0x898e6e44
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> kv
# ChildEBP RetAddr Args to Child
00 f791abd8 f740d8c7 00000004 00000000 00000019 hal!HalGetBusDataByOffset (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\hals\halacpi\pmbus.c @ 165]
01 f791ac48 f740d0d2 899b00ac 00000000 00000000 ACPI!PciConfigSpaceHandlerWorker+0x29b (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\nt\pciopregion.c @ 708]
02 f791acb0 f7407433 899b00ac 00000000 00000000 ACPI!GetPciAddressWorker+0x1e8 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\nt\pciopregion.c @ 1207]
03 f791acd8 f741f89b 899b00ac 00000000 89900e3c ACPI!ACPIGetWorkerForInteger+0xcf (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\nt\get.c @ 4814]
04 f791ad10 f741d905 f7407364 00000000 f743a934 ACPI!AsyncCallBack+0xe7 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\sync.c @ 81]
05 f791ad34 f742042d 00000000 f7433d3c f743a928 ACPI!RunContext+0x1f5 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\ctxt.c @ 649]
06 f791ad4c f74204ec f743a950 f743b318 f743a9b8 ACPI!DispatchCtxtQueue+0xaf (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\sched.c @ 150]
07 f791ad64 f74133c5 f743a928 00000000 89981ca0 ACPI!StartTimeSlicePassive+0x57 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\sched.c @ 107]
08 f791adac 80d391f0 00000000 00000000 00000000 ACPI!ACPIWorker+0xbf (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\worker.c @ 302]
09 f791addc 80b00d52 f7413306 00000000 00000000 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
0a 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]
1: kd> bp f742042d
1: kd> gu
Breakpoint 53 hit
eax=00000002 ebx=899ae8e8 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 0x898e6e44
898e6e44 ff ff 00 00 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
898e6e54 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
898e6e64 71 9b 41 f7 0c 84 94 89-64 51 8e 89 54 45 52 4d q.A.....dQ..TERM
898e6e74 34 00 00 00 01 00 00 00-34 7a 42 f7 8b 84 94 89 4.......4zB.....
898e6e84 00 00 00 00 00 00 00 00-10 93 43 f7 00 00 00 00 ..........C.....
898e6e94 01 00 00 00 02 00 00 00-64 51 8e 89 1c 51 8e 89 ........dQ...Q..
898e6ea4 54 45 52 4d 34 00 00 00-01 00 00 00 34 7a 42 f7 TERM4.......4zB.
898e6eb4 8a 84 94 89 00 00 00 00-00 00 00 00 70 91 43 f7 ............p.C.


1: kd> g
Breakpoint 65 hit
eax=00008004 ebx=8997c000 ecx=8997e000 edx=00002707 esi=f743a928 edi=f743a934
eip=f742042d esp=f791ad3c ebp=f791ad4c 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!DispatchCtxtQueue+0xaf:
f742042d 57 push edi


while ((plist = ListRemoveHead(&pctxtq->plistCtxtQ)) != NULL)
{
pctxt = CONTAINING_RECORD(plist, CTXT, listQueue);

ASSERT(pctxt->pplistCtxtQueue == &pctxtq->plistCtxtQ);

pctxt->pplistCtxtQueue = NULL;
pctxt->dwfCtxt &= ~CTXTF_IN_READYQ;
RunContext(pctxt);
}

第三部分:

下面是完整的对设备Device (PE90)的处理

Device (PE90)
{
Name (_ADR, 0x001A0000) // _ADR: Address

1: kd> g
Breakpoint 39 hit
eax=898fa010 ebx=898fa000 ecx=00008004 edx=00002707 esi=f743a928 edi=f743a934
eip=f741d710 esp=f791ad38 ebp=f791ad4c iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000206
ACPI!RunContext:
f741d710 55 push ebp
1: kd> kc
#
00 ACPI!RunContext
01 ACPI!DispatchCtxtQueue
02 ACPI!StartTimeSlicePassive
03 ACPI!ACPIWorker
04 nt!PspSystemThreadStartup
05 nt!KiThreadStartup
1: kd> dv
pctxt = 0x898fa000
pctxtSave = 0xf741d711
pkthSave = 0x00000008
rc = 0n-1987076096
1: kd> g
Breakpoint 45 hit
eax=00000000 ebx=f743a948 ecx=f743a948 edx=00002700 esi=898fa000 edi=898fbfe4
eip=f741d82f esp=f791ad14 ebp=f791ad34 iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000286
ACPI!RunContext+0x11f:
f741d82f ff570c call dword ptr [edi+0Ch] ds:0023:898fbff0={ACPI!ProcessEvalObj (f741ef2b)}
1: kd> g
Breakpoint 54 hit
eax=00000000 ebx=f743a948 ecx=00000000 edx=00000000 esi=898fa000 edi=00008004
eip=f741d900 esp=f791ad18 ebp=f791ad34 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!RunContext+0x1f0:
f741d900 e8af1e0000 call ACPI!AsyncCallBack (f741f7b4)
1: kd> g
Breakpoint 40 hit
eax=00000000 ebx=f743a948 ecx=00000000 edx=00000000 esi=898fa000 edi=00008004
eip=f741f7b4 esp=f791ad14 ebp=f791ad34 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!AsyncCallBack:
f741f7b4 55 push ebp
1: kd> g
Breakpoint 62 hit
eax=00000057 ebx=899b00ac ecx=8997e000 edx=00002707 esi=898fa000 edi=899c0f90
eip=f7407364 esp=f791acdc ebp=f791ad10 iopl=0 nv up ei ng nz ac pe cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000297
ACPI!ACPIGetWorkerForInteger:
f7407364 55 push ebp
1: kd> g
Breakpoint 63 hit
eax=f740ceea ebx=00000000 ecx=00000001 edx=00002707 esi=899c0f90 edi=899c0fbc
eip=f740ceea esp=f791acb4 ebp=f791acd8 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!GetPciAddressWorker:
f740ceea 55 push ebp
1: kd> g
Breakpoint 48 hit
eax=00000000 ebx=00000000 ecx=00002000 edx=00002707 esi=898594b8 edi=00000000
eip=f740d62c esp=f791ac4c ebp=f791acb0 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!PciConfigSpaceHandlerWorker:
f740d62c 55 push ebp
1: kd> g
Breakpoint 51 hit
eax=00000000 ebx=899ae5f8 ecx=00000100 edx=89948c30 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 = 0x1a
Buffer = 0x898e4e44
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=899ae5f8 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 0x898e4e44
898e4e44 ff ff 00 00 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...
898e4e54 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........
898e4e64 71 9b 41 f7 d4 8c 94 89-64 31 8e 89 54 45 52 4d q.A.....d1..TERM
898e4e74 34 00 00 00 01 00 00 00-34 7a 42 f7 53 8d 94 89 4.......4zB.S...
898e4e84 00 00 00 00 00 00 00 00-10 93 43 f7 00 00 00 00 ..........C.....
898e4e94 01 00 00 00 02 00 00 00-64 31 8e 89 1c 31 8e 89 ........d1...1..
898e4ea4 54 45 52 4d 34 00 00 00-01 00 00 00 34 7a 42 f7 TERM4.......4zB.
898e4eb4 52 8d 94 89 00 00 00 00-00 00 00 00 70 91 43 f7 R...........p.C.
1: kd> g
Breakpoint 58 hit
eax=00000002 ebx=899ae5f8 ecx=00000000 edx=00000002 esi=00000002 edi=00000000
eip=f740d8e4 esp=f791abf8 ebp=f791ac48 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!PciConfigSpaceHandlerWorker+0x2b8:
f740d8e4 33f6 xor esi,esi
1: kd> g
Breakpoint 64 hit
eax=00000002 ebx=899ae5f8 ecx=00000000 edx=00000002 esi=00000000 edi=00000000
eip=f7420914 esp=f791abf0 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!RestartCtxtCallback:
f7420914 55 push ebp
1: kd> g
Breakpoint 65 hit
eax=00008004 ebx=898fa000 ecx=8997e000 edx=00002707 esi=f743a928 edi=f743a934
eip=f742042d esp=f791ad3c ebp=f791ad4c 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!DispatchCtxtQueue+0xaf:
f742042d 57 push edi
1: kd> kc
#
00 ACPI!DispatchCtxtQueue
01 ACPI!StartTimeSlicePassive
02 ACPI!ACPIWorker
03 nt!PspSystemThreadStartup
04 nt!KiThreadStartup

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询