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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1201219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF650G国宾车车架设计

第2章 总体方案确定 2.1 国内外车架概况 摇篮式车架:其特点是摩托车发动机的安装状态犹如婴儿被放在框架的摇篮中一样,所以称为摇篮式车架.这些空间结构的车架在强度和刚性方面都要好的多,所以大功率摩托车.高速竞赛车广泛地采用这种车架. 摇篮式车架又可细分为 ⑴双排管摇篮式…

2001-2023年全国各省制造业细分行业产值数据

2001-2023年全国各省制造业细分行业产值数据 1、时间:2001-2023年 2、来源:国家统计局、统计年鉴 3、指标:农副食品加工业、食品制造业、酒、饮料和精制茶制造业、烟草制造业、纺织业、纺织服装、鞋帽制造业、皮革、毛皮、羽毛&#xff08…

兰亭妙微:以交互设计界面设计VUE开发,重塑智慧商保理赔新体验

兰亭妙微:以交互设计界面设计VUE开发,重塑智慧商保理赔新体验在数字化浪潮席卷医疗与保险行业的今天,“高效、安全、暖心”成为智慧商保产品的核心竞争力。保信健康宝——这款联合保险公司、医院打造的统一线上理赔…

德勤报告:AI并未兑现盈利承诺

赚钱并不是一切...至少在AI领域如此。专业服务公司德勤的研究显示,对大多数企业而言,采用AI工具对盈利并没有任何帮助。但研究人员仍对这项技术给予赞誉。根据德勤发布的"企业AI现状"报告,74%的组织希望其AI项目能够增加收入&#…

【更新至2024年】2008-2024年各省规模以上工业企业RD经费数据

【更新至2024年】2008-2024年各省规模以上工业企业R&D经费数据 1、时间:2008-2024年 2、指标:规模以上工业企业R&D经费(万元) 3、来源:国家统计局、统计年鉴 4、范围:31省 5、缺失情况:2010年缺失&#x…

粉料自动包装机

第2章 设计任务简介 2.1 设计题目 粉料立式包装机整体及传动系统设计 粉料包装机是针对粉状物料而实现自动包装而设计的单辊筒多配置的包装机械。可实现三边封口的包装。 要设计完成的包装膜供给装置采用倾斜方式。被包装的物料通过计量装置的精密计量后落入下料嘴,…

方程式赛车发动机进气系统设计与分析

2 进气系统方案设计 2.1 进气系统设计流程 进气系统设计首先是要了解发动机自身特性。此次使用的Aprilia SXV 550【13】发动机是来自高性能公路摩托车阿普利亚Aprilia SXV 550的一款摩托车发动机。发动机,离合器,变速器为一体式结构,变速器末…

在吴忠,遇见羽毛球:专业教练与智能系统伴你成长

羽毛球场地上,击球声与脚步声交织成独特的韵律。在这里,每位学员的成长轨迹都被细心记录,每一次挥拍的进步都被看见。吴忠码上羽毛球俱乐部正在重新定义羽毛球培训——当专业教练的经验遇见智能系统的精准,学习羽毛球变得前所未有…

钢管旋切机设计—控制部分设计

5 钢管旋切机改进方案 根据现在旋切机加工精度不高,对环境污染严重,生产效率低,浪费资源,不宜与实现自动化,劳动强度大的缺点,做如下改进:采用无屑轧切工艺,生产效率高管材利用好&am…

自动化FortiGate攻击利用FortiCloud单点登录篡改防火墙配置

网络安全公司Arctic Wolf警告称,出现了一个"新的自动化恶意活动集群",涉及对Fortinet FortiGate设备进行未经授权的防火墙配置更改。该公司表示,这项活动始于2026年1月15日,与2025年12月的一次攻击活动具有相似性。在那…

详细介绍:【Qt】Qt 批量修改同类对象

详细介绍:【Qt】Qt 批量修改同类对象2026-01-22 17:39 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

2026年杭州休博康复护理院标杆推荐:休博康复护理院、休博养老医院、休博重症医院、休博重症护理医院(★★★★★)

在人口老龄化进程加速、康养服务需求持续升级的2025年,优质医养护理机构成为民众健康保障的重要依托。其中,杭州休博护理院凭借在康复、重症、养老、血透四大核心领域的深耕细作,以及标准化的服务体系与差异化的服务…

MiroThinker:开源搜索代理模型助力高效研究

MiroThinker 是一个开源的搜索代理模型,旨在通过工具增强推理和现实世界信息搜索的能力,实现与 OpenAI Deep Research 和 Gemini Deep Research 之间的深度研究体验相匹配。 🚀 MiroThinker 概述 MiroThinker 是 MiroMind 的旗舰研究代理模…

在吴忠,一位国家二级运动员的教练如何用科技与专业重塑羽毛球学习

清晨的阳光透过吴忠码上羽毛球俱乐部的玻璃窗,洒在整洁的球场上。国家二级运动员韩宁波教练正与一位学员进行多球训练,他每一次喂球都精准地落在学员最舒适的回击位置。01 专业教练团队,国家二级运动员领衔教学韩宁波教练作为国家二级运动员&…

MongoDB开源mongot引擎源码,助力RAG和AI工作负载

MongoDB已在服务端公共许可证(SSPL)下发布了mongot引擎的源码。mongot是驱动MongoDB搜索和向量搜索功能的核心引擎。分析师表示,此举将帮助自管理版本数据库的开发者更好地规划AI用例的RAG系统,因为源码将提供更多的透明度、可调试…

宏智树 AI 双降攻略:破解查重与 AIGC 检测的双重学术关卡

“查重率 8% 却被 AIGC 检测标红 90%”“越改越生硬,反而暴露 AI 痕迹”…… 随着高校查重系统与 AIGC 识别技术同步升级,论文安全早已不是 “重复率低” 就能通关。作为深耕论文写作科普的教育博主,我实测发现宏智树 AI(官网&…

2026年市场靠谱的重型货架批发厂家推荐排行榜,自动化立体库货架/穿梭式货架/层板货架,重型货架供应商推荐排行榜

行业背景:重型货架市场迎来技术驱动与场景深化新阶段 随着制造业智能化升级与物流效率需求提升,重型货架行业正从单一存储功能向“空间优化+流程自动化”方向转型。据第三方机构统计,2025年国内重型货架市场规模突破…

复合运动绕线机设计

第2章 复合运动绕线机基本设计方案 2.1 传统绕线机设备的局限性 原有机械式绕线机的绕线过程:电机转动通过齿轮降速将转动传递到绕线轴 ,在由绕线轴带著绕线模低速匀速转动,最终完成线圈的绕制。图1.1为机械式绕线机的机械结构示意图。随着线…

fixedbug:Lombok@Builder 构造 方法生成

文章目录 前言一、Lombok的一些常用注解二、Builder 构造 方法问题2.1 Builder 生成私有的构造方法:2.2 处理方式: 总结 前言 本文记录在使用:LombokBuilder 时 ,发送Post 请求,后端在接收参数时报 无法找到 构造方法…

还能火多久?电动冲浪板行业迎来“新品时代”

水上运动这行当,今年彻底变天了。那些还在热衷于传统冲浪板的人,可能还没醒过味儿来——现在电动冲浪板正以不可阻挡之势席卷而来,电动冲浪板行业已然迎来了“新品时代”。 GOYOJO作为肇庆市天科机电有限公司的核心…