P2P0的STA方法完成后子节点S1F0存在完整调试过程到S2F0--重要
1: kd> g
Breakpoint 14 hit
ACPI!Return:
f74255ed 55 push ebp
1: kd> kc
00 ACPI!Return
01 ACPI!ParseTerm
02 ACPI!RunContext
03 ACPI!DispatchCtxtQueue
04 ACPI!StartTimeSlicePassive
05 ACPI!ACPIWorker
06 nt!PspSystemThreadStartup
07 nt!KiThreadStartup
1: kd> dv
pctxt = 0x897e4000
pterm = 0x897e5bbc
1: kd> dx -r1 ((ACPI!_ctxt *)0x897e4000)
((ACPI!_ctxt *)0x897e4000) : 0x897e4000 [Type: _ctxt *]
+0x000\] dwSig : 0x54585443 \[Type: unsigned long
+0x004\] pbCtxtEnd : 0x897e6000 : 0x43 \[Type: unsigned char \*
+0x008\] listCtxt \[Type: _List
+0x010\] listQueue \[Type: _List
+0x018\] pplistCtxtQueue : 0x0 \[Type: _List \* \*
+0x01c\] plistResources : 0x0 \[Type: _List \*
+0x020\] dwfCtxt : 0x130 \[Type: unsigned long
+0x024\] pnsObj : 0x8996d684 \[Type: _NSObj \*
+0x028\] pnsScope : 0x8996d1e4 \[Type: _NSObj \*
+0x02c\] powner : 0x897e41ac \[Type: _objowner \*
+0x030\] pcall : 0x897e5c18 \[Type: _call \*
+0x034\] pnctxt : 0x0 \[Type: _nestedctxt \*
+0x038\] dwSyncLevel : 0x0 \[Type: unsigned long
+0x03c\] pbOp : 0x8996d248 : 0x48 \[Type: unsigned char \*
+0x040\] Result \[Type: _ObjData
+0x054\] pfnAsyncCallBack : 0xf7407364 \[Type: void (__cdecl\*)(_NSObj \*,long,_ObjData \*,void \*)
+0x058\] pdataCallBack : 0x899bfc3c \[Type: _ObjData \*
+0x05c\] pvContext : 0x899bfc10 \[Type: void \*
+0x060\] Timer \[Type: _KTIMER
+0x088\] Dpc \[Type: _KDPC
+0x0a8\] pheapCurrent : 0x897e40bc \[Type: _heap \*
+0x0ac\] CtxtData \[Type: _ctxtdata
+0x0bc\] LocalHeap \[Type: _heap
1: kd> db 0x8996d1e4
8996d1e4 a0 d1 96 89 54 d2 96 89-78 cd 96 89 00 00 00 00 ....T...x.......
8996d1f4 5f 53 54 41 30 f3 9a 89-a0 d1 96 89 00 00 08 00 _STA0...........
8996d204 00 00 00 00 00 00 00 00-20 00 00 00 28 d2 96 89 ........ ...(...
8996d214 00 00 00 00 00 00 00 00-48 4d 45 54 2c 00 00 00 ........HMET,...
8996d224 00 90 96 89 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996d234 00 00 00 00 00 a4 7b 93-49 44 5f 5f 0c ad 15 90 ......{.ID__....
8996d244 07 0a 0f 00 48 4e 53 4f-44 00 00 00 00 90 96 89 ....HNSOD.......
8996d254 e4 d1 96 89 98 d2 96 89-78 cd 96 89 00 00 00 00 ........x.......
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996d1e4)
((ACPI!_NSObj *)0x8996d1e4) : 0x8996d1e4 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x8996cd78 \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x4154535f \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996d1a0 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996cd78
8996cd78 38 cc 96 89 88 4f 97 89-ac ff 9a 89 f0 cd 96 89 8....O..........
8996cd88 50 32 50 30 30 f3 9a 89-38 cc 96 89 00 00 06 00 P2P00...8.......
8996cd98 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996cda8 a0 8e 96 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...
8996cdb8 00 90 96 89 00 00 00 00-04 00 00 00 02 00 00 00 ................
8996cdc8 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996cdd8 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
8996cde8 44 00 00 00 00 90 96 89-b0 4b 97 89 b4 ce 96 89 D........K......
1: kd> dv
pctxt = 0x897e4000
pterm = 0x897e5bbc
1: kd> dx -r1 ((ACPI!_term *)0x897e5bbc)
((ACPI!_term *)0x897e5bbc) : 0x897e5bbc [Type: _term *]
+0x000\] FrameHdr \[Type: _framehdr
+0x010\] pbOpTerm : 0x8996d239 : 0xa4 \[Type: unsigned char \*
+0x014\] pbOpEnd : 0x0 \[Type: unsigned char \*
+0x018\] pbScopeEnd : 0x8996d248 : 0x48 \[Type: unsigned char \*
+0x01c\] pamlterm : 0xf7439070 \[Type: _amlterm \*
+0x020\] pnsObj : 0x0 \[Type: _NSObj \*
+0x024\] iArg : 1 \[Type: int
+0x028\] icArgs : 1 \[Type: int
+0x02c\] pdataArgs : 0x897e41c8 \[Type: _ObjData \*
+0x030\] pdataResult : 0x897e4178 \[Type: _ObjData \*
1: kd> dx -r1 ((ACPI!_ObjData *)0x897e41c8)
((ACPI!_ObjData *)0x897e41c8) : 0x897e41c8 [Type: _ObjData *]
+0x000\] dwfData : 0x0 \[Type: unsigned short
+0x002\] dwDataType : 0x1 \[Type: unsigned short
+0x004\] dwRefCount : 0x0 \[Type: unsigned long
+0x004\] pdataBase : 0x0 \[Type: _ObjData \*
+0x008\] dwDataValue : 0xf \[Type: unsigned long
+0x008\] uipDataValue : 0xf \[Type: unsigned long
+0x008\] pnsAlias : 0xf \[Type: _NSObj \*
+0x008\] pdataAlias : 0xf \[Type: _ObjData \*
+0x008\] powner : 0xf \[Type: void \*
+0x00c\] dwDataLen : 0x0 \[Type: unsigned long
+0x010\] pbDataBuff : 0x0 \[Type: unsigned char \*
Device (P2P0)
{
Name (_ADR, 0x00110000) // _ADR: Address
Method (BSTA, 1, NotSerialized)
{
Return (PSTA (_STA (), Arg0))
}
OperationRegion (REGS, PCI_Config, 0x00, 0x04)
Field (REGS, DWordAcc, NoLock, Preserve)
{
ID, 32
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (And (LEqual (ID, 0x079015AD), 0x0F))
}
Device (S1F0)
{
Name (_ADR, Zero) // _ADR: Address
Name (_SUN, 0x20) // _SUN: Slot User Number
OperationRegion (REGS, PCI_Config, 0x00, 0x04)
Field (REGS, DWordAcc, NoLock, Preserve)
{
ID, 32
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (BSTA (ID))
}
1: kd> g
Breakpoint 13 hit
ACPI!ParseCall:
f7427709 55 push ebp
1: kd> dv
pctxt = 0x897e4000
pcall = 0x897e5c18
rc = 0n32770
powner = 0xf742770a
pm = 0x897e5c18
pacq = 0x00000008
data = struct _ObjData
1: kd> dx -r1 ((ACPI!_call *)0x897e5c18)
((ACPI!_call *)0x897e5c18) : 0x897e5c18 [Type: _call *]
+0x000\] FrameHdr \[Type: _framehdr
+0x010\] pcallPrev : 0x897e5e0c \[Type: _call \*
+0x014\] pownerPrev : 0x897e413c \[Type: _objowner \*
+0x018\] pnsMethod : 0x8996d1e4 \[Type: _NSObj \*
+0x01c\] iArg : 0 \[Type: int
+0x020\] icArgs : 0 \[Type: int
+0x024\] pdataArgs : 0x0 \[Type: _ObjData \*
+0x028\] Locals \[Type: _ObjData \[8\]
+0x0c8\] pdataResult : 0x897e4178 \[Type: _ObjData \*
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996d1e4)
((ACPI!_NSObj *)0x8996d1e4) : 0x8996d1e4 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x8996cd78 \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x4154535f \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996d1a0 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996d1e4
8996d1e4 a0 d1 96 89 54 d2 96 89-78 cd 96 89 00 00 00 00 ....T...x.......
8996d1f4 5f 53 54 41 30 f3 9a 89-a0 d1 96 89 00 00 08 00 _STA0...........
1: kd> db 0x8996cd78
8996cd78 38 cc 96 89 88 4f 97 89-ac ff 9a 89 f0 cd 96 89 8....O..........
8996cd88 50 32 50 30 30 f3 9a 89-38 cc 96 89 00 00 06 00 P2P00...8.......
_STA方法返回。
1: kd> g
Breakpoint 13 hit
ACPI!ParseCall:
f7427709 55 push ebp
1: kd> dv
pctxt = 0x897e4000
pcall = 0x897e5ce4
rc = 0n0
powner = 0xf742770a
pm = 0x897e5ce4
pacq = 0x00000008
data = struct _ObjData
1: kd> dx -r1 ((ACPI!_call *)0x897e5ce4)
((ACPI!_call *)0x897e5ce4) : 0x897e5ce4 [Type: _call *]
+0x000\] FrameHdr \[Type: _framehdr
+0x010\] pcallPrev : 0x0 \[Type: _call \*
+0x014\] pownerPrev : 0x0 \[Type: _objowner \*
+0x018\] pnsMethod : 0x8996cb68 \[Type: _NSObj \*
+0x01c\] iArg : 1 \[Type: int
+0x020\] icArgs : 2 \[Type: int
+0x024\] pdataArgs : 0x897e4178 \[Type: _ObjData \*
+0x028\] Locals \[Type: _ObjData \[8\]
+0x0c8\] pdataResult : 0x897e4158 \[Type: _ObjData \*
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996cb68)
((ACPI!_NSObj *)0x8996cb68) : 0x8996cb68 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x899affac \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x41545350 \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996cae0 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996cb68)
Address expression missing from ')'
1: kd> db 0x8996cb68
8996cb68 e0 ca 96 89 d8 cb 96 89-ac ff 9a 89 00 00 00 00 ................
8996cb78 50 53 54 41 30 f3 9a 89-e0 ca 96 89 00 00 08 00 PSTA0...........
1: kd> db 0x899affac
899affac 4c ff 9a 89 ac 40 9b 89-f0 f0 9a 89 24 00 9b 89 L....@......$...
899affbc 50 43 49 30 30 f3 9a 89-4c ff 9a 89 00 00 06 00 PCI00...L.......
开始PSTA方法。
1: kd> g
Breakpoint 14 hit
ACPI!Return:
f74255ed 55 push ebp
1: kd> dv
pctxt = 0x897e4000
pterm = 0x897e5c88
1: kd> dx -r1 ((ACPI!_term *)0x897e5c88)
((ACPI!_term *)0x897e5c88) : 0x897e5c88 [Type: _term *]
+0x000\] FrameHdr \[Type: _framehdr
+0x010\] pbOpTerm : 0x8996cbbd : 0xa4 \[Type: unsigned char \*
+0x014\] pbOpEnd : 0x0 \[Type: unsigned char \*
+0x018\] pbScopeEnd : 0x8996cbca : 0x0 \[Type: unsigned char \*
+0x01c\] pamlterm : 0xf7439070 \[Type: _amlterm \*
+0x020\] pnsObj : 0x0 \[Type: _NSObj \*
+0x024\] iArg : 1 \[Type: int
+0x028\] icArgs : 1 \[Type: int
+0x02c\] pdataArgs : 0x897e41c8 \[Type: _ObjData \*
+0x030\] pdataResult : 0x897e4158 \[Type: _ObjData \*
1: kd> dx -r1 ((ACPI!_ObjData *)0x897e41c8)
((ACPI!_ObjData *)0x897e41c8) : 0x897e41c8 [Type: _ObjData *]
+0x000\] dwfData : 0x0 \[Type: unsigned short
+0x002\] dwDataType : 0x1 \[Type: unsigned short
+0x004\] dwRefCount : 0x0 \[Type: unsigned long
+0x004\] pdataBase : 0x0 \[Type: _ObjData \*
+0x008\] dwDataValue : 0xf \[Type: unsigned long
+0x008\] uipDataValue : 0xf \[Type: unsigned long
+0x008\] pnsAlias : 0xf \[Type: _NSObj \*
+0x008\] pdataAlias : 0xf \[Type: _ObjData \*
+0x008\] powner : 0xf \[Type: void \*
+0x00c\] dwDataLen : 0x0 \[Type: unsigned long
+0x010\] pbDataBuff : 0x0 \[Type: unsigned char \*
1: kd> g
Breakpoint 13 hit
ACPI!ParseCall:
f7427709 55 push ebp
1: kd> kc
00 ACPI!ParseCall
01 ACPI!RunContext
02 ACPI!DispatchCtxtQueue
03 ACPI!StartTimeSlicePassive
04 ACPI!ACPIWorker
05 nt!PspSystemThreadStartup
06 nt!KiThreadStartup
1: kd> dv
pctxt = 0x897e4000
pcall = 0x897e5ce4
rc = 0n32770
powner = 0xf742770a
pm = 0x897e5ce4
pacq = 0x00000008
data = struct _ObjData
1: kd> dx -r1 ((ACPI!_call *)0x897e5ce4)
((ACPI!_call *)0x897e5ce4) : 0x897e5ce4 [Type: _call *]
+0x000\] FrameHdr \[Type: _framehdr
+0x010\] pcallPrev : 0x897e5e0c \[Type: _call \*
+0x014\] pownerPrev : 0x897e413c \[Type: _objowner \*
+0x018\] pnsMethod : 0x8996cb68 \[Type: _NSObj \*
+0x01c\] iArg : 2 \[Type: int
+0x020\] icArgs : 2 \[Type: int
+0x024\] pdataArgs : 0x897e4178 \[Type: _ObjData \*
+0x028\] Locals \[Type: _ObjData \[8\]
+0x0c8\] pdataResult : 0x897e4158 \[Type: _ObjData \*
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996cb68)
((ACPI!_NSObj *)0x8996cb68) : 0x8996cb68 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x899affac \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x41545350 \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996cae0 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996cb68
8996cb68 e0 ca 96 89 d8 cb 96 89-ac ff 9a 89 00 00 00 00 ................
8996cb78 50 53 54 41 30 f3 9a 89-e0 ca 96 89 00 00 08 00 PSTA0...........
1: kd> db 0x899affac
899affac 4c ff 9a 89 ac 40 9b 89-f0 f0 9a 89 24 00 9b 89 L....@......$...
899affbc 50 43 49 30 30 f3 9a 89-4c ff 9a 89 00 00 06 00 PCI00...L.......
PSTA函数返回中。
1: kd> g
Breakpoint 14 hit
ACPI!Return:
f74255ed 55 push ebp
1: kd> dv
pctxt = 0x897e4000
pterm = 0x897e5db0
1: kd> dx -r1 ((ACPI!_ctxt *)0x897e4000)
((ACPI!_ctxt *)0x897e4000) : 0x897e4000 [Type: _ctxt *]
+0x000\] dwSig : 0x54585443 \[Type: unsigned long
+0x004\] pbCtxtEnd : 0x897e6000 : 0x43 \[Type: unsigned char \*
+0x008\] listCtxt \[Type: _List
+0x010\] listQueue \[Type: _List
+0x018\] pplistCtxtQueue : 0x0 \[Type: _List \* \*
+0x01c\] plistResources : 0x0 \[Type: _List \*
+0x020\] dwfCtxt : 0x130 \[Type: unsigned long
+0x024\] pnsObj : 0x8996d684 \[Type: _NSObj \*
+0x028\] pnsScope : 0x8996cf74 \[Type: _NSObj \*
+0x02c\] powner : 0x897e413c \[Type: _objowner \*
+0x030\] pcall : 0x897e5e0c \[Type: _call \*
+0x034\] pnctxt : 0x0 \[Type: _nestedctxt \*
+0x038\] dwSyncLevel : 0x0 \[Type: unsigned long
+0x03c\] pbOp : 0x8996cfd3 : 0x0 \[Type: unsigned char \*
+0x040\] Result \[Type: _ObjData
+0x054\] pfnAsyncCallBack : 0xf7407364 \[Type: void (__cdecl\*)(_NSObj \*,long,_ObjData \*,void \*)
+0x058\] pdataCallBack : 0x899bfc3c \[Type: _ObjData \*
+0x05c\] pvContext : 0x899bfc10 \[Type: void \*
+0x060\] Timer \[Type: _KTIMER
+0x088\] Dpc \[Type: _KDPC
+0x0a8\] pheapCurrent : 0x897e40bc \[Type: _heap \*
+0x0ac\] CtxtData \[Type: _ctxtdata
+0x0bc\] LocalHeap \[Type: _heap
1: kd> db 0x8996cf74
8996cf74 30 cf 96 89 e0 cf 96 89-78 cd 96 89 00 00 00 00 0.......x.......
8996cf84 42 53 54 41 30 f3 9a 89-30 cf 96 89 00 00 08 00 BSTA0...0.......
8996cf94 00 00 00 00 00 00 00 00-1b 00 00 00 b8 cf 96 89 ................
8996cfa4 00 00 00 00 00 00 00 00-48 4d 45 54 28 00 00 00 ........HMET(...
8996cfb4 00 90 96 89 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996cfc4 00 00 00 00 01 a4 50 53-54 41 5f 53 54 41 68 00 ......PSTA_STAh.
8996cfd4 48 4e 53 4f 44 00 00 00-00 90 96 89 74 cf 96 89 HNSOD.......t...
8996cfe4 4c d0 96 89 78 cd 96 89-00 00 00 00 42 45 4a 30 L...x.......BEJ0
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996cf74)
((ACPI!_NSObj *)0x8996cf74) : 0x8996cf74 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x8996cd78 \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x41545342 \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996cf30 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996cd78
8996cd78 38 cc 96 89 88 4f 97 89-ac ff 9a 89 f0 cd 96 89 8....O..........
8996cd88 50 32 50 30 30 f3 9a 89-38 cc 96 89 00 00 06 00 P2P00...8.......
1: kd> dv
pctxt = 0x897e4000
pterm = 0x897e5db0
1: kd> dx -r1 ((ACPI!_term *)0x897e5db0)
((ACPI!_term *)0x897e5db0) : 0x897e5db0 [Type: _term *]
+0x000\] FrameHdr \[Type: _framehdr
+0x010\] pbOpTerm : 0x8996cfc9 : 0xa4 \[Type: unsigned char \*
+0x014\] pbOpEnd : 0x0 \[Type: unsigned char \*
+0x018\] pbScopeEnd : 0x8996cfd3 : 0x0 \[Type: unsigned char \*
+0x01c\] pamlterm : 0xf7439070 \[Type: _amlterm \*
+0x020\] pnsObj : 0x0 \[Type: _NSObj \*
+0x024\] iArg : 1 \[Type: int
+0x028\] icArgs : 1 \[Type: int
+0x02c\] pdataArgs : 0x897e4158 \[Type: _ObjData \*
+0x030\] pdataResult : 0x897e40fc \[Type: _ObjData \*
1: kd> dx -r1 ((ACPI!_ObjData *)0x897e4158)
((ACPI!_ObjData *)0x897e4158) : 0x897e4158 [Type: _ObjData *]
+0x000\] dwfData : 0x0 \[Type: unsigned short
+0x002\] dwDataType : 0x1 \[Type: unsigned short
+0x004\] dwRefCount : 0x0 \[Type: unsigned long
+0x004\] pdataBase : 0x0 \[Type: _ObjData \*
+0x008\] dwDataValue : 0xf \[Type: unsigned long
+0x008\] uipDataValue : 0xf \[Type: unsigned long
+0x008\] pnsAlias : 0xf \[Type: _NSObj \*
+0x008\] pdataAlias : 0xf \[Type: _ObjData \*
+0x008\] powner : 0xf \[Type: void \*
+0x00c\] dwDataLen : 0x0 \[Type: unsigned long
+0x010\] pbDataBuff : 0x0 \[Type: unsigned char \*
BSTA函数返回0xf
1: kd> g
Breakpoint 13 hit
ACPI!ParseCall:
f7427709 55 push ebp
1: kd> dv
pctxt = 0x897e4000
pcall = 0x897e5e0c
rc = 0n32770
powner = 0xf742770a
pm = 0x897e5e0c
pacq = 0x00000008
data = struct _ObjData
1: kd> dx -r1 ((ACPI!_call *)0x897e5e0c)
((ACPI!_call *)0x897e5e0c) : 0x897e5e0c [Type: _call *]
+0x000\] FrameHdr \[Type: _framehdr
+0x010\] pcallPrev : 0x897e5f34 \[Type: _call \*
+0x014\] pownerPrev : 0x897e40e0 \[Type: _objowner \*
+0x018\] pnsMethod : 0x8996cf74 \[Type: _NSObj \*
+0x01c\] iArg : 1 \[Type: int
+0x020\] icArgs : 1 \[Type: int
+0x024\] pdataArgs : 0x897e411c \[Type: _ObjData \*
+0x028\] Locals \[Type: _ObjData \[8\]
+0x0c8\] pdataResult : 0x897e40fc \[Type: _ObjData \*
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996cf74)
((ACPI!_NSObj *)0x8996cf74) : 0x8996cf74 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x8996cd78 \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x41545342 \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996cf30 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996cf74
8996cf74 30 cf 96 89 e0 cf 96 89-78 cd 96 89 00 00 00 00 0.......x.......
8996cf84 42 53 54 41 30 f3 9a 89-30 cf 96 89 00 00 08 00 BSTA0...0.......
1: kd> db 0x8996cd78
8996cd78 38 cc 96 89 88 4f 97 89-ac ff 9a 89 f0 cd 96 89 8....O..........
8996cd88 50 32 50 30 30 f3 9a 89-38 cc 96 89 00 00 06 00 P2P00...8.......
BSTA函数最后stage,清理。
1: kd> g
Breakpoint 14 hit
ACPI!Return:
f74255ed 55 push ebp
1: kd> dv
pctxt = 0x897e4000
pterm = 0x897e5ed8
1: kd> dx -r1 ((ACPI!_ctxt *)0x897e4000)
((ACPI!_ctxt *)0x897e4000) : 0x897e4000 [Type: _ctxt *]
+0x000\] dwSig : 0x54585443 \[Type: unsigned long
+0x004\] pbCtxtEnd : 0x897e6000 : 0x43 \[Type: unsigned char \*
+0x008\] listCtxt \[Type: _List
+0x010\] listQueue \[Type: _List
+0x018\] pplistCtxtQueue : 0x0 \[Type: _List \* \*
+0x01c\] plistResources : 0x0 \[Type: _List \*
+0x020\] dwfCtxt : 0x130 \[Type: unsigned long
+0x024\] pnsObj : 0x8996d684 \[Type: _NSObj \*
+0x028\] pnsScope : 0x8996d684 \[Type: _NSObj \*
+0x02c\] powner : 0x897e40e0 \[Type: _objowner \*
+0x030\] pcall : 0x897e5f34 \[Type: _call \*
+0x034\] pnctxt : 0x0 \[Type: _nestedctxt \*
+0x038\] dwSyncLevel : 0x0 \[Type: unsigned long
+0x03c\] pbOp : 0x8996d6e2 : 0x0 \[Type: unsigned char \*
+0x040\] Result \[Type: _ObjData
+0x054\] pfnAsyncCallBack : 0xf7407364 \[Type: void (__cdecl\*)(_NSObj \*,long,_ObjData \*,void \*)
+0x058\] pdataCallBack : 0x899bfc3c \[Type: _ObjData \*
+0x05c\] pvContext : 0x899bfc10 \[Type: void \*
+0x060\] Timer \[Type: _KTIMER
+0x088\] Dpc \[Type: _KDPC
+0x0a8\] pheapCurrent : 0x897e40bc \[Type: _heap \*
+0x0ac\] CtxtData \[Type: _ctxtdata
+0x0bc\] LocalHeap \[Type: _heap
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996d684)
((ACPI!_NSObj *)0x8996d684) : 0x8996d684 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x8996d45c \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x4154535f \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996d640 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996d684
8996d684 40 d6 96 89 f0 d6 96 89-5c d4 96 89 00 00 00 00 @.......\.......
8996d694 5f 53 54 41 30 f3 9a 89-40 d6 96 89 00 00 08 00 _STA0...@.......
1: kd> db 0x8996d45c
8996d45c 98 d2 96 89 60 d8 96 89-78 cd 96 89 d4 d4 96 89 ....`...x.......
8996d46c 53 31 46 30 30 f3 9a 89-98 d2 96 89 00 00 06 00 S1F00...........
_STA方法的return
1: kd> dv
pctxt = 0x897e4000
pterm = 0x897e5ed8
1: kd> dx -r1 ((ACPI!_term *)0x897e5ed8)
((ACPI!_term *)0x897e5ed8) : 0x897e5ed8 [Type: _term *]
+0x000\] FrameHdr \[Type: _framehdr
+0x010\] pbOpTerm : 0x8996d6d9 : 0xa4 \[Type: unsigned char \*
+0x014\] pbOpEnd : 0x0 \[Type: unsigned char \*
+0x018\] pbScopeEnd : 0x8996d6e2 : 0x0 \[Type: unsigned char \*
+0x01c\] pamlterm : 0xf7439070 \[Type: _amlterm \*
+0x020\] pnsObj : 0x0 \[Type: _NSObj \*
+0x024\] iArg : 1 \[Type: int
+0x028\] icArgs : 1 \[Type: int
+0x02c\] pdataArgs : 0x897e40fc \[Type: _ObjData \*
+0x030\] pdataResult : 0x897e4040 \[Type: _ObjData \*
1: kd> dx -r1 ((ACPI!_ObjData *)0x897e40fc)
((ACPI!_ObjData *)0x897e40fc) : 0x897e40fc [Type: _ObjData *]
+0x000\] dwfData : 0x0 \[Type: unsigned short
+0x002\] dwDataType : 0x1 \[Type: unsigned short
+0x004\] dwRefCount : 0x0 \[Type: unsigned long
+0x004\] pdataBase : 0x0 \[Type: _ObjData \*
+0x008\] dwDataValue : 0xf \[Type: unsigned long
+0x008\] uipDataValue : 0xf \[Type: unsigned long
+0x008\] pnsAlias : 0xf \[Type: _NSObj \*
+0x008\] pdataAlias : 0xf \[Type: _ObjData \*
+0x008\] powner : 0xf \[Type: void \*
+0x00c\] dwDataLen : 0x0 \[Type: unsigned long
+0x010\] pbDataBuff : 0x0 \[Type: unsigned char \*
1: kd> g
Breakpoint 13 hit
ACPI!ParseCall:
f7427709 55 push ebp
1: kd> dv
pctxt = 0x897e4000
pcall = 0x897e5f34
rc = 0n32770
powner = 0xf742770a
pm = 0x897e5f34
pacq = 0x00000008
data = struct _ObjData
1: kd> dx -r1 ((ACPI!_call *)0x897e5f34)
((ACPI!_call *)0x897e5f34) : 0x897e5f34 [Type: _call *]
+0x000\] FrameHdr \[Type: _framehdr
+0x010\] pcallPrev : 0x0 \[Type: _call \*
+0x014\] pownerPrev : 0x0 \[Type: _objowner \*
+0x018\] pnsMethod : 0x8996d684 \[Type: _NSObj \*
+0x01c\] iArg : 0 \[Type: int
+0x020\] icArgs : 0 \[Type: int
+0x024\] pdataArgs : 0x0 \[Type: _ObjData \*
+0x028\] Locals \[Type: _ObjData \[8\]
+0x0c8\] pdataResult : 0x897e4040 \[Type: _ObjData \*
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996d684)
((ACPI!_NSObj *)0x8996d684) : 0x8996d684 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x8996d45c \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x4154535f \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996d640 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996d684
8996d684 40 d6 96 89 f0 d6 96 89-5c d4 96 89 00 00 00 00 @.......\.......
8996d694 5f 53 54 41 30 f3 9a 89-40 d6 96 89 00 00 08 00 _STA0...@.......
1: kd> db 0x8996d45c
8996d45c 98 d2 96 89 60 d8 96 89-78 cd 96 89 d4 d4 96 89 ....`...x.......
8996d46c 53 31 46 30 30 f3 9a 89-98 d2 96 89 00 00 06 00 S1F00...........
_STA方法最后stage清理阶段。
1: kd> g
Breakpoint 4 hit
ACPI!ACPIInternalUpdateDeviceStatus:
f7409910 55 push ebp
1: kd> kc
00 ACPI!ACPIInternalUpdateDeviceStatus
01 ACPI!ACPIGetConvertToDevicePresence
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
DeviceExtension = 0x89968c88
DeviceStatus = 0xf
oldIrql = 0x00 ''
1: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x89968c88)
((ACPI!_DEVICE_EXTENSION *)0x89968c88) : 0x89968c88 [Type: _DEVICE_EXTENSION *]
+0x000\] Flags : 0xa \[Type: unsigned __int64
+0x000\] UFlags \[Type: __unnamed
+0x008\] Signature : 0x5f534750 \[Type: unsigned long
+0x00c\] DebugFlags : 0x0 \[Type: unsigned long
+0x010\] DispatchTable : 0x0 \[Type: IRP_DISPATCH_TABLE \*
+0x014\] WorkContext \[Type: WORK_QUEUE_CONTEXT
+0x014\] Fdo \[Type: _FDO_DEVICE_EXTENSION
+0x014\] Filter \[Type: _FILTER_DEVICE_EXTENSION
+0x014\] Pdo \[Type: _PDO_DEVICE_EXTENSION
+0x058\] WorkQueue \[Type: EXTENSION_WORKER
+0x058\] Button \[Type: BUTTON_EXTENSION
+0x058\] Thermal \[Type: THERMAL_EXTENSION
+0x058\] LinkNode \[Type: LINK_NODE_EXTENSION
+0x058\] Dock \[Type: DOCK_EXTENSION
+0x058\] Processor \[Type: _PROCESSOR_DEVICE_EXTENSION
+0x088\] DeviceState : Stopped (0) \[Type: _ACPI_DEVICE_STATE
+0x08c\] PreviousState : Stopped (0) \[Type: _ACPI_DEVICE_STATE
+0x090\] PowerInfo \[Type: _ACPI_POWER_INFO
+0x10c\] DeviceID : 0x0 \[Type: unsigned char \*
+0x10c\] Address : 0x0 \[Type: unsigned long
+0x110\] InstanceID : 0x0 \[Type: unsigned char \*
+0x114\] ResourceList : 0x0 \[Type: _CM_RESOURCE_LIST \*
+0x118\] PnpResourceList : 0x0 \[Type: _ObjData \*
+0x11c\] OutstandingIrpCount : 1 \[Type: long
+0x120\] ReferenceCount : 4 \[Type: long
+0x124\] HibernatePathCount : 0 \[Type: long
+0x128\] RemoveEvent : 0x0 \[Type: _KEVENT \*
+0x12c\] AcpiObject : 0x8996d45c \[Type: _NSObj \*
+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*
+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*
+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*
+0x13c\] ParentExtension : 0x89968ea0 \[Type: _DEVICE_EXTENSION \*
+0x140\] ChildDeviceList \[Type: _LIST_ENTRY
+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY
+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY
+0x158\] EjectDeviceList \[Type: _LIST_ENTRY
1: kd> db 0x8996d45c
8996d45c 98 d2 96 89 60 d8 96 89-78 cd 96 89 d4 d4 96 89 ....`...x.......
8996d46c 53 31 46 30 30 f3 9a 89-98 d2 96 89 00 00 06 00 S1F00...........
8996d47c 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996d48c 88 8c 96 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...
8996d49c 00 90 96 89 00 00 00 00-04 00 00 00 02 00 00 00 ................
8996d4ac 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996d4bc 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
8996d4cc 44 00 00 00 00 90 96 89-1c d8 96 89 18 d5 96 89 D...............
S1F0节点存在!!!
1: kd> gu
ACPI!ACPIGetConvertToDevicePresence+0xcf:
f7406da5 5e pop esi
1: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x89968c88)
((ACPI!_DEVICE_EXTENSION *)0x89968c88) : 0x89968c88 [Type: _DEVICE_EXTENSION *]
+0x000\] Flags : 0x40000000000008 \[Type: unsigned __int64
S1F0对应的节点 ACPI!ACPIBuildProcessRunMethodPhaseCheckSta阶段完成。
1: kd> g
Breakpoint 5 hit
ACPI!ACPIBuildProcessGenericList+0x4d:
f73fb911 ff55f4 call dword ptr [ebp-0Ch]
1: kd> r
eax=00000004 ebx=00000004 ecx=899003f8 edx=00000001 esi=899003e8 edi=80b019f4
eip=f73fb911 esp=f78aef68 ebp=f78aef84 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!ACPIBuildProcessGenericList+0x4d:
f73fb911 ff55f4 call dword ptr [ebp-0Ch] ss:0010:f78aef78={ACPI!ACPIBuildProcessRunMethodPhaseCheckBridge (f73fbb44)}
1: kd> t
ACPI!ACPIBuildProcessRunMethodPhaseCheckBridge:
f73fbb44 55 push ebp
1: kd> kc
00 ACPI!ACPIBuildProcessRunMethodPhaseCheckBridge
01 ACPI!ACPIBuildProcessGenericList
02 ACPI!ACPIBuildDeviceDpc
03 nt!KiRetireDpcList
04 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
05 0x0
1: kd> dv
BuildRequest = 0x899003e8
1: kd> dx -r1 ((ACPI!_ACPI_BUILD_REQUEST *)0x899003e8)
((ACPI!_ACPI_BUILD_REQUEST *)0x899003e8) : 0x899003e8 [Type: _ACPI_BUILD_REQUEST *]
+0x000\] ListEntry \[Type: _LIST_ENTRY
+0x008\] Signature : 0x5f534750 \[Type: unsigned long
+0x00c\] Flags : 0xc \[Type: unsigned long
+0x00c\] UFlags \[Type: __unnamed
+0x010\] WorkDone : 0x1 \[Type: unsigned long
+0x014\] CurrentWorkDone : 0x4 \[Type: unsigned long
+0x018\] NextWorkDone : 0x2 \[Type: unsigned long
+0x01c\] BuildContext : 0x89968c88 \[Type: void \*
+0x020\] Status : 0 \[Type: long
+0x024\] CurrentObject : 0x0 \[Type: _NSObj \*
+0x028\] CallBack : 0x0 \[Type: void (\*)(void \*,void \*,long)
+0x02c\] CallBackContext : 0x0 \[Type: void \*
+0x030\] DeviceRequest \[Type: __unnamed
+0x030\] RunRequest \[Type: __unnamed
+0x030\] SynchronizeRequest \[Type: __unnamed
+0x044\] Integer : 0xf \[Type: unsigned long
+0x044\] String : 0xf : Unable to read memory at Address 0xf \[Type: unsigned char \*
+0x044\] TargetListEntry : 0xf \[Type: _LIST_ENTRY \*
1: kd> dt acpi!_DEVICE_EXTENSION 0x89968c88
+0x000 Flags : 0x00400000`00000008
+0x000 UFlags : __unnamed
+0x008 Signature : 0x5f534750
+0x00c DebugFlags : 0
+0x010 DispatchTable : (null)
+0x014 WorkContext : WORK_QUEUE_CONTEXT
+0x014 Fdo : _FDO_DEVICE_EXTENSION
+0x014 Filter : _FILTER_DEVICE_EXTENSION
+0x014 Pdo : _PDO_DEVICE_EXTENSION
+0x058 WorkQueue : EXTENSION_WORKER
+0x058 Button : BUTTON_EXTENSION
+0x058 Thermal : THERMAL_EXTENSION
+0x058 LinkNode : LINK_NODE_EXTENSION
+0x058 Dock : DOCK_EXTENSION
+0x058 Processor : _PROCESSOR_DEVICE_EXTENSION
+0x088 DeviceState : 0 ( Stopped )
+0x08c PreviousState : 0 ( Stopped )
+0x090 PowerInfo : _ACPI_POWER_INFO
+0x10c DeviceID : (null)
+0x10c Address : 0
+0x110 InstanceID : (null)
+0x114 ResourceList : (null)
+0x118 PnpResourceList : (null)
+0x11c OutstandingIrpCount : 0n1
+0x120 ReferenceCount : 0n4
+0x124 HibernatePathCount : 0n0
+0x128 RemoveEvent : (null)
+0x12c AcpiObject : 0x8996d45c _NSObj
+0x130 DeviceObject : (null)
+0x134 TargetDeviceObject : (null)
+0x138 PhysicalDeviceObject : (null)
+0x13c ParentExtension : 0x89968ea0 _DEVICE_EXTENSION
+0x140 ChildDeviceList : _LIST_ENTRY [ 0x89968dc8 - 0x89968dc8 ]
+0x148 SiblingDeviceList : _LIST_ENTRY [ 0x89968bd0 - 0x89968fe0 ]
+0x150 EjectDeviceHead : _LIST_ENTRY [ 0x89968dd8 - 0x89968dd8 ]
+0x158 EjectDeviceList : _LIST_ENTRY [ 0x89968de0 - 0x89968de0 ]
1: kd> g
Breakpoint 5 hit
eax=00000005 ebx=00000005 ecx=899003f8 edx=00000001 esi=899003e8 edi=80b019f4
eip=f73fb911 esp=f78aef68 ebp=f78aef84 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!ACPIBuildProcessGenericList+0x4d:
f73fb911 ff55f4 call dword ptr [ebp-0Ch] ss:0010:f78aef78={ACPI!ACPIBuildProcessRunMethodPhaseRunMethod (f73fbcf2)}
1: kd> t
eax=00000005 ebx=00000005 ecx=899003f8 edx=00000001 esi=899003e8 edi=80b019f4
eip=f73fbcf2 esp=f78aef64 ebp=f78aef84 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!ACPIBuildProcessRunMethodPhaseRunMethod:
f73fbcf2 55 push ebp
1: kd> kc
00 ACPI!ACPIBuildProcessRunMethodPhaseRunMethod
01 ACPI!ACPIBuildProcessGenericList
02 ACPI!ACPIBuildDeviceDpc
03 nt!KiRetireDpcList
04 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
05 0x0
1: kd> dv
BuildRequest = 0x899003e8
nsObj = 0x00000000
status = 0n8
objData = struct _ObjData [2]
numArgs = 0xf73fbcf2
args = 0x899003e8
1: kd> g
Breakpoint 6 hit
eax=00000000 ebx=00000005 ecx=00000041 edx=00000002 esi=899003e8 edi=80b019f4
eip=f73fb914 esp=f78aef6c ebp=f78aef84 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!ACPIBuildProcessGenericList+0x50:
f73fb914 85db test ebx,ebx
1: kd> g
Breakpoint 5 hit
eax=00000006 ebx=00000006 ecx=899003f8 edx=00000001 esi=899003e8 edi=80b019f4
eip=f73fb911 esp=f78aef68 ebp=f78aef84 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!ACPIBuildProcessGenericList+0x4d:
f73fb911 ff55f4 call dword ptr [ebp-0Ch] ss:0010:f78aef78={ACPI!ACPIBuildProcessRunMethodPhaseRecurse (f73fd6b0)}
1: kd> t
eax=00000006 ebx=00000006 ecx=899003f8 edx=00000001 esi=899003e8 edi=80b019f4
eip=f73fd6b0 esp=f78aef64 ebp=f78aef84 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!ACPIBuildProcessRunMethodPhaseRecurse:
f73fd6b0 55 push ebp
1: kd> kc
00 ACPI!ACPIBuildProcessRunMethodPhaseRecurse
01 ACPI!ACPIBuildProcessGenericList
02 ACPI!ACPIBuildDeviceDpc
03 nt!KiRetireDpcList
04 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
05 0x0
1: kd> dv
BuildRequest = 0x899003e8
childExtension = 0x899003e8
deviceExtension = 0x00000008
eled = struct EXTENSIONLIST_ENUMDATA
1: kd> g
Breakpoint 6 hit
eax=00000000 ebx=00000006 ecx=00000041 edx=00000002 esi=899003e8 edi=80b019f4
eip=f73fb914 esp=f78aef6c ebp=f78aef84 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!ACPIBuildProcessGenericList+0x50:
f73fb914 85db test ebx,ebx
1: kd> g
Breakpoint 5 hit
eax=00000000 ebx=00000000 ecx=899003f8 edx=00000001 esi=899003e8 edi=80b019f4
eip=f73fb911 esp=f78aef68 ebp=f78aef84 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!ACPIBuildProcessGenericList+0x4d:
f73fb911 ff55f4 call dword ptr [ebp-0Ch] ss:0010:f78aef78={ACPI!ACPIBuildProcessGenericComplete (f73fb840)}
1: kd> t
eax=00000000 ebx=00000000 ecx=899003f8 edx=00000001 esi=899003e8 edi=80b019f4
eip=f73fb840 esp=f78aef64 ebp=f78aef84 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!ACPIBuildProcessGenericComplete:
f73fb840 55 push ebp
1: kd> kc
00 ACPI!ACPIBuildProcessGenericComplete
01 ACPI!ACPIBuildProcessGenericList
02 ACPI!ACPIBuildDeviceDpc
03 nt!KiRetireDpcList
04 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
05 0x0
1: kd> dv
BuildRequest = 0x899003e8
deviceExtension = 0x899003e8
1: kd> g
Breakpoint 6 hit
eax=00000000 ebx=00000000 ecx=00040003 edx=00030002 esi=899003e8 edi=80b019f4
eip=f73fb914 esp=f78aef6c ebp=f78aef84 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!ACPIBuildProcessGenericList+0x50:
f73fb914 85db test ebx,ebx
1: kd> g
Breakpoint 14 hit
eax=f74255ed ebx=897e6000 ecx=897e6000 edx=897e6000 esi=897e7bbc edi=00000000
eip=f74255ed esp=f791acf4 ebp=f791ad0c 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!Return:
f74255ed 55 push ebp
1: kd> kc
00 ACPI!Return
01 ACPI!ParseTerm
02 ACPI!RunContext
03 ACPI!DispatchCtxtQueue
04 ACPI!StartTimeSlicePassive
05 ACPI!ACPIWorker
06 nt!PspSystemThreadStartup
07 nt!KiThreadStartup
1: kd> dv
pctxt = 0x897e6000
pterm = 0x897e7bbc
1: kd> dx -r1 ((ACPI!_ctxt *)0x897e6000)
((ACPI!_ctxt *)0x897e6000) : 0x897e6000 [Type: _ctxt *]
+0x000\] dwSig : 0x54585443 \[Type: unsigned long
+0x004\] pbCtxtEnd : 0x897e8000 : 0x43 \[Type: unsigned char \*
+0x008\] listCtxt \[Type: _List
+0x010\] listQueue \[Type: _List
+0x018\] pplistCtxtQueue : 0x0 \[Type: _List \* \*
+0x01c\] plistResources : 0x0 \[Type: _List \*
+0x020\] dwfCtxt : 0x130 \[Type: unsigned long
+0x024\] pnsObj : 0x8996da54 \[Type: _NSObj \*\] 处理的对象 \[+0x028\] pnsScope : 0x8996d1e4 \[Type: _NSObj \*\] 当前正在处理的对象 \[+0x02c\] powner : 0x897e61ac \[Type: _objowner \*
+0x030\] pcall : 0x897e7c18 \[Type: _call \*
+0x034\] pnctxt : 0x0 \[Type: _nestedctxt \*
+0x038\] dwSyncLevel : 0x0 \[Type: unsigned long
+0x03c\] pbOp : 0x8996d248 : 0x48 \[Type: unsigned char \*
+0x040\] Result \[Type: _ObjData
+0x054\] pfnAsyncCallBack : 0xf7407364 \[Type: void (__cdecl\*)(_NSObj \*,long,_ObjData \*,void \*)
+0x058\] pdataCallBack : 0x899c50dc \[Type: _ObjData \*
+0x05c\] pvContext : 0x899c50b0 \[Type: void \*
+0x060\] Timer \[Type: _KTIMER
+0x088\] Dpc \[Type: _KDPC
+0x0a8\] pheapCurrent : 0x897e60bc \[Type: _heap \*
+0x0ac\] CtxtData \[Type: _ctxtdata
+0x0bc\] LocalHeap \[Type: _heap
1: kd> db 0x8996d1e4
8996d1e4 a0 d1 96 89 54 d2 96 89-78 cd 96 89 00 00 00 00 ....T...x.......
8996d1f4 5f 53 54 41 30 f3 9a 89-a0 d1 96 89 00 00 08 00 _STA0...........
8996d204 00 00 00 00 00 00 00 00-20 00 00 00 28 d2 96 89 ........ ...(...
8996d214 00 00 00 00 00 00 00 00-48 4d 45 54 2c 00 00 00 ........HMET,...
8996d224 00 90 96 89 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996d234 00 00 00 00 00 a4 7b 93-49 44 5f 5f 0c ad 15 90 ......{.ID__....
8996d244 07 0a 0f 00 48 4e 53 4f-44 00 00 00 00 90 96 89 ....HNSOD.......
8996d254 e4 d1 96 89 98 d2 96 89-78 cd 96 89 00 00 00 00 ........x.......
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996d1e4)
((ACPI!_NSObj *)0x8996d1e4) : 0x8996d1e4 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x8996cd78 \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x4154535f \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996d1a0 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996cd78
8996cd78 38 cc 96 89 88 4f 97 89-ac ff 9a 89 f0 cd 96 89 8....O..........
8996cd88 50 32 50 30 30 f3 9a 89-38 cc 96 89 00 00 06 00 P2P00...8.......
8996cd98 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996cda8 a0 8e 96 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...
8996cdb8 00 90 96 89 00 00 00 00-04 00 00 00 02 00 00 00 ................
8996cdc8 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996cdd8 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
8996cde8 44 00 00 00 00 90 96 89-b0 4b 97 89 b4 ce 96 89 D........K......
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996da54)
((ACPI!_NSObj *)0x8996da54) : 0x8996da54 [Type: _NSObj *]
+0x000\] list \[Type: _List
+0x008\] pnsParent : 0x8996d860 \[Type: _NSObj \*
+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*
+0x010\] dwNameSeg : 0x4154535f \[Type: unsigned long
+0x014\] hOwner : 0x899af330 \[Type: void \*
+0x018\] pnsOwnedNext : 0x8996da10 \[Type: _NSObj \*
+0x01c\] ObjData \[Type: _ObjData
+0x030\] Context : 0x0 \[Type: void \*
+0x034\] dwRefCount : 0x0 \[Type: unsigned long
1: kd> db 0x8996da54
8996da54 10 da 96 89 c0 da 96 89-60 d8 96 89 00 00 00 00 ........`.......
8996da64 5f 53 54 41 30 f3 9a 89-10 da 96 89 00 00 08 00 _STA0...........
8996da74 00 00 00 00 00 00 00 00-1a 00 00 00 98 da 96 89 ................
8996da84 00 00 00 00 00 00 00 00-48 4d 45 54 28 00 00 00 ........HMET(...
8996da94 00 90 96 89 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996daa4 00 00 00 00 00 a4 42 53-54 41 49 44 5f 5f 00 00 ......BSTAID__..
8996dab4 48 4e 53 4f 44 00 00 00-00 90 96 89 54 da 96 89 HNSOD.......T...
8996dac4 2c db 96 89 60 d8 96 89-00 00 00 00 5f 45 4a 30 ,...`......._EJ0
1: kd> db 0x8996d860
8996d860 5c d4 96 89 38 dc 96 89-78 cd 96 89 a4 d8 96 89 \...8...x.......
8996d870 53 32 46 30 30 f3 9a 89-1c d8 96 89 00 00 06 00 S2F00...........
8996d880 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996d890 88 8a 96 89 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...
8996d8a0 00 90 96 89 f4 db 96 89-e8 d8 96 89 60 d8 96 89 ............`...
8996d8b0 00 00 00 00 5f 41 44 52-30 f3 9a 89 60 d8 96 89 ...._ADR0...`...
8996d8c0 00 00 01 00 00 00 00 00-00 00 01 00 00 00 00 00 ................
8996d8d0 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
下面处理S2F0节点。