1: kd> g
Breakpoint 5 hit
ACPI!ACPIWorker+0xbd:
f74133c3 ffd0 call eax
第一次调用ACPI!RestartCtxtPassive时处理的节点是第一个有_STA方法的节点BAT1
1: kd> t
Breakpoint 6 hit
ACPI!RestartCtxtPassive:
f7420746 55 push ebp
1: kd> dv
prest = 0x89db81b0
1: kd> dx -r1 ((ACPI!_restart *)0x89db81b0)
((ACPI!_restart *)0x89db81b0) : 0x89db81b0 [Type: _restart *]
+0x000\] pctxt : 0x89d35000 \[Type: _ctxt \*
+0x004\] WorkItem \[Type: _WORK_QUEUE_ITEM
1: kd> dx -r1 ((ACPI!_ctxt *)0x89d35000)
((ACPI!_ctxt *)0x89d35000) : 0x89d35000 [Type: _ctxt *]
+0x000\] dwSig : 0x54585443 \[Type: unsigned long
+0x004\] pbCtxtEnd : 0x89d37000 : 0x0 \[Type: unsigned char \*
+0x008\] listCtxt \[Type: _List
+0x010\] listQueue \[Type: _List
+0x018\] pplistCtxtQueue : 0x0 \[Type: _List \* \*
+0x01c\] plistResources : 0x0 \[Type: _List \*
+0x020\] dwfCtxt : 0x120 \[Type: unsigned long
+0x024\] pnsObj : 0x89da864c \[Type: _NSObj \*
+0x028\] pnsScope : 0x89da864c \[Type: _NSObj \*
+0x02c\] powner : 0x0 \[Type: _objowner \*
+0x030\] pcall : 0x0 \[Type: _call \*
+0x034\] pnctxt : 0x0 \[Type: _nestedctxt \*
+0x038\] dwSyncLevel : 0x0 \[Type: unsigned long
+0x03c\] pbOp : 0x0 \[Type: unsigned char \*
+0x040\] Result \[Type: _ObjData
+0x054\] pfnAsyncCallBack : 0xf7407364 \[Type: void (__cdecl\*)(_NSObj \*,long,_ObjData \*,void \*)
+0x058\] pdataCallBack : 0x89df8214 \[Type: _ObjData \*
+0x05c\] pvContext : 0x89df81e8 \[Type: void \*
+0x060\] Timer \[Type: _KTIMER
+0x088\] Dpc \[Type: _KDPC
+0x0a8\] pheapCurrent : 0x89d350bc \[Type: _heap \*
+0x0ac\] CtxtData \[Type: _ctxtdata
+0x0bc\] LocalHeap \[Type: _heap
1: kd> dx -r1 (*((ACPI!_heap *)0x89d350bc))
(*((ACPI!_heap *)0x89d350bc)) [Type: _heap]
+0x000\] dwSig : 0x50414548 \[Type: unsigned long
+0x004\] pbHeapEnd : 0x89d36f34 : 0x43 \[Type: unsigned char \*
+0x008\] pheapHead : 0x89d350bc \[Type: _heap \*
+0x00c\] pheapNext : 0x0 \[Type: _heap \*
+0x010\] pbHeapTop : 0x89d350d4 : 0x0 \[Type: unsigned char \*
+0x014\] plistFreeHeap : 0x0 \[Type: _List \*
+0x018\] Heap \[Type: _heapobjhdr
1: kd> dx -r1 ((ACPI!_NSObj *)0x89da864c)
((ACPI!_NSObj *)0x89da864c) : 0x89da864c [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x89da8518 \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x4154535f \[Type: unsigned long
+0x014\] hOwner : 0x89da3330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x89da8608 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x89da864c
89da864c 08 86 da 89 b4 86 da 89-18 85 da 89 00 00 00 00 ................
89da865c 5f 53 54 41 30 33 da 89-08 86 da 89 00 00 08 00 _STA03..........
89da866c 00 00 00 00 00 00 00 00-18 00 00 00 90 86 da 89 ................
89da867c 00 00 00 00 00 00 00 00-48 4d 45 54 24 00 00 00 ........HMET$...
89da868c 00 30 da 89 00 00 00 00-00 00 00 00 00 00 00 00 .0..............
89da869c 00 00 00 00 00 a4 56 4d-50 53 0a 01 48 4e 53 4f ......VMPS..HNSO
89da86ac 44 00 00 00 00 30 da 89-4c 86 da 89 1c 87 da 89 D....0..L.......
89da86bc 18 85 da 89 00 00 00 00-5f 42 49 46 30 33 da 89 ........_BIF03..
1: kd> db 0x89da8518
89da8518 70 84 da 89 04 88 da 89-f0 30 da 89 5c 85 da 89 p........0..\...
89da8528 42 41 54 31 30 33 da 89-70 84 da 89 00 00 06 00 BAT103..p.......
89da8538 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
89da8548 88 42 df 89 00 00 00 00-48 4e 53 4f 44 00 00 00 .B......HNSOD...
89da8558 00 30 da 89 84 87 da 89-a0 85 da 89 18 85 da 89 .0..............
89da8568 00 00 00 00 5f 48 49 44-30 33 da 89 18 85 da 89 ...._HID03......
89da8578 00 00 01 00 00 00 00 00-41 d0 0c 0a 00 00 00 00 ........A.......
89da8588 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO