得到P2P0的子节点S1F0-S32F的ID和PE40-PE77的子节点S1F0的ID之后acpi!greadyqueue有64个节点后需要知道P2P0的_STA的情况阻塞了。
1: kd> x acpi!greadyqueue
f743a928 ACPI!gReadyQueue = struct _ctxtq
1: kd> dx -r1 (*((ACPI!_ctxtq *)0xf743a928))
(*((ACPI!_ctxtq *)0xf743a928)) [Type: _ctxtq]
[+0x000] dwfCtxtQ : 0x1 [Type: unsigned long]
[+0x004] pkthCurrent : 0x89981ca0 [Type: _KTHREAD *]
[+0x008] pctxtCurrent : 0x897e4000 [Type: _ctxt *]
[+0x00c] plistCtxtQ : 0x897e6010 [Type: _List *]
[+0x010] dwmsTimeSliceLength : 0x64 [Type: unsigned long]
[+0x014] dwmsTimeSliceInterval : 0x64 [Type: unsigned long]
[+0x018] pfnPauseCallback : 0x0 [Type: void (__cdecl*)(void *)]
[+0x01c] PauseCBContext : 0x0 [Type: void *]
[+0x020] mutCtxtQ [Type: _mutex]
[+0x028] Timer [Type: _KTIMER]
[+0x050] DpcStartTimeSlice [Type: _KDPC]
[+0x070] DpcExpireTimeSlice [Type: _KDPC]
[+0x090] WorkItem [Type: _WORK_QUEUE_ITEM]
1: kd> dx -r1 ((ACPI!_List *)0x897e6010)
((ACPI!_List *)0x897e6010) : 0x897e6010 [Type: _List *] 1
[+0x000] plistPrev : 0x898a2010 [Type: _List *]
[+0x004] plistNext : 0x897e8010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898a2010)
((ACPI!_List *)0x898a2010) : 0x898a2010 [Type: _List *]
[+0x000] plistPrev : 0x898a4010 [Type: _List *]
[+0x004] plistNext : 0x897e6010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898a4010)
((ACPI!_List *)0x898a4010) : 0x898a4010 [Type: _List *]
[+0x000] plistPrev : 0x898a6010 [Type: _List *]
[+0x004] plistNext : 0x898a2010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898a6010)
((ACPI!_List *)0x898a6010) : 0x898a6010 [Type: _List *]
[+0x000] plistPrev : 0x898a9010 [Type: _List *]
[+0x004] plistNext : 0x898a4010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898a9010)
((ACPI!_List *)0x898a9010) : 0x898a9010 [Type: _List *] 5
[+0x000] plistPrev : 0x898ab010 [Type: _List *]
[+0x004] plistNext : 0x898a6010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898ab010)
((ACPI!_List *)0x898ab010) : 0x898ab010 [Type: _List *]
[+0x000] plistPrev : 0x898ad010 [Type: _List *]
[+0x004] plistNext : 0x898a9010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898ad010)
((ACPI!_List *)0x898ad010) : 0x898ad010 [Type: _List *]
[+0x000] plistPrev : 0x898af010 [Type: _List *]
[+0x004] plistNext : 0x898ab010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898af010)
((ACPI!_List *)0x898af010) : 0x898af010 [Type: _List *]
[+0x000] plistPrev : 0x898b1010 [Type: _List *]
[+0x004] plistNext : 0x898ad010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898b1010)
((ACPI!_List *)0x898b1010) : 0x898b1010 [Type: _List *]
[+0x000] plistPrev : 0x898b3010 [Type: _List *]
[+0x004] plistNext : 0x898af010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898b3010)
((ACPI!_List *)0x898b3010) : 0x898b3010 [Type: _List *] 10
[+0x000] plistPrev : 0x898b5010 [Type: _List *]
[+0x004] plistNext : 0x898b1010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898b5010)
((ACPI!_List *)0x898b5010) : 0x898b5010 [Type: _List *]
[+0x000] plistPrev : 0x898b7010 [Type: _List *]
[+0x004] plistNext : 0x898b3010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898b7010)
((ACPI!_List *)0x898b7010) : 0x898b7010 [Type: _List *]
[+0x000] plistPrev : 0x898b9010 [Type: _List *]
[+0x004] plistNext : 0x898b5010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898b9010)
((ACPI!_List *)0x898b9010) : 0x898b9010 [Type: _List *]
[+0x000] plistPrev : 0x898bb010 [Type: _List *]
[+0x004] plistNext : 0x898b7010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898bb010)
((ACPI!_List *)0x898bb010) : 0x898bb010 [Type: _List *]
[+0x000] plistPrev : 0x898bd010 [Type: _List *]
[+0x004] plistNext : 0x898b9010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898bd010)
((ACPI!_List *)0x898bd010) : 0x898bd010 [Type: _List *] 15
[+0x000] plistPrev : 0x898bf010 [Type: _List *]
[+0x004] plistNext : 0x898bb010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898bf010)
((ACPI!_List *)0x898bf010) : 0x898bf010 [Type: _List *]
[+0x000] plistPrev : 0x898c1010 [Type: _List *]
[+0x004] plistNext : 0x898bd010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898c1010)
((ACPI!_List *)0x898c1010) : 0x898c1010 [Type: _List *]
[+0x000] plistPrev : 0x898c3010 [Type: _List *]
[+0x004] plistNext : 0x898bf010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898c3010)
((ACPI!_List *)0x898c3010) : 0x898c3010 [Type: _List *]
[+0x000] plistPrev : 0x898c5010 [Type: _List *]
[+0x004] plistNext : 0x898c1010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898c5010)
((ACPI!_List *)0x898c5010) : 0x898c5010 [Type: _List *]
[+0x000] plistPrev : 0x898c7010 [Type: _List *]
[+0x004] plistNext : 0x898c3010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898c7010)
((ACPI!_List *)0x898c7010) : 0x898c7010 [Type: _List *] 20
[+0x000] plistPrev : 0x898c9010 [Type: _List *]
[+0x004] plistNext : 0x898c5010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898c9010)
((ACPI!_List *)0x898c9010) : 0x898c9010 [Type: _List *]
[+0x000] plistPrev : 0x898cb010 [Type: _List *]
[+0x004] plistNext : 0x898c7010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898cb010)
((ACPI!_List *)0x898cb010) : 0x898cb010 [Type: _List *]
[+0x000] plistPrev : 0x898cd010 [Type: _List *]
[+0x004] plistNext : 0x898c9010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898cd010)
((ACPI!_List *)0x898cd010) : 0x898cd010 [Type: _List *]
[+0x000] plistPrev : 0x898cf010 [Type: _List *]
[+0x004] plistNext : 0x898cb010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898cf010)
((ACPI!_List *)0x898cf010) : 0x898cf010 [Type: _List *]
[+0x000] plistPrev : 0x898d1010 [Type: _List *]
[+0x004] plistNext : 0x898cd010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898d1010)
((ACPI!_List *)0x898d1010) : 0x898d1010 [Type: _List *] 25
[+0x000] plistPrev : 0x898d3010 [Type: _List *]
[+0x004] plistNext : 0x898cf010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898d3010)
((ACPI!_List *)0x898d3010) : 0x898d3010 [Type: _List *]
[+0x000] plistPrev : 0x898d5010 [Type: _List *]
[+0x004] plistNext : 0x898d1010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898d5010)
((ACPI!_List *)0x898d5010) : 0x898d5010 [Type: _List *]
[+0x000] plistPrev : 0x898d7010 [Type: _List *]
[+0x004] plistNext : 0x898d3010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898d7010)
((ACPI!_List *)0x898d7010) : 0x898d7010 [Type: _List *]
[+0x000] plistPrev : 0x898d9010 [Type: _List *]
[+0x004] plistNext : 0x898d5010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898d9010)
((ACPI!_List *)0x898d9010) : 0x898d9010 [Type: _List *]
[+0x000] plistPrev : 0x898e9010 [Type: _List *]
[+0x004] plistNext : 0x898d7010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898e9010)
((ACPI!_List *)0x898e9010) : 0x898e9010 [Type: _List *] 30
[+0x000] plistPrev : 0x898eb010 [Type: _List *]
[+0x004] plistNext : 0x898d9010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898eb010)
((ACPI!_List *)0x898eb010) : 0x898eb010 [Type: _List *]
[+0x000] plistPrev : 0x898ed010 [Type: _List *]
[+0x004] plistNext : 0x898e9010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898ed010)
((ACPI!_List *)0x898ed010) : 0x898ed010 [Type: _List *]
[+0x000] plistPrev : 0x898ef010 [Type: _List *]
[+0x004] plistNext : 0x898eb010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898ef010)
((ACPI!_List *)0x898ef010) : 0x898ef010 [Type: _List *]
[+0x000] plistPrev : 0x8981d010 [Type: _List *]
[+0x004] plistNext : 0x898ed010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x8981d010)
((ACPI!_List *)0x8981d010) : 0x8981d010 [Type: _List *]
[+0x000] plistPrev : 0x89787010 [Type: _List *]
[+0x004] plistNext : 0x898ef010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89787010)
((ACPI!_List *)0x89787010) : 0x89787010 [Type: _List *] 35
[+0x000] plistPrev : 0x89785010 [Type: _List *]
[+0x004] plistNext : 0x8981d010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89785010)
((ACPI!_List *)0x89785010) : 0x89785010 [Type: _List *]
[+0x000] plistPrev : 0x89783010 [Type: _List *]
[+0x004] plistNext : 0x89787010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89783010)
((ACPI!_List *)0x89783010) : 0x89783010 [Type: _List *]
[+0x000] plistPrev : 0x8981b010 [Type: _List *]
[+0x004] plistNext : 0x89785010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x8981b010)
((ACPI!_List *)0x8981b010) : 0x8981b010 [Type: _List *]
[+0x000] plistPrev : 0x898f8010 [Type: _List *]
[+0x004] plistNext : 0x89783010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898f8010)
((ACPI!_List *)0x898f8010) : 0x898f8010 [Type: _List *]
[+0x000] plistPrev : 0x89903010 [Type: _List *]
[+0x004] plistNext : 0x8981b010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89903010)
((ACPI!_List *)0x89903010) : 0x89903010 [Type: _List *] 40
[+0x000] plistPrev : 0x898fc010 [Type: _List *]
[+0x004] plistNext : 0x898f8010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898fc010)
((ACPI!_List *)0x898fc010) : 0x898fc010 [Type: _List *]
[+0x000] plistPrev : 0x898fe010 [Type: _List *]
[+0x004] plistNext : 0x89903010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898fe010)
((ACPI!_List *)0x898fe010) : 0x898fe010 [Type: _List *]
[+0x000] plistPrev : 0x89901010 [Type: _List *]
[+0x004] plistNext : 0x898fc010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89901010)
((ACPI!_List *)0x89901010) : 0x89901010 [Type: _List *]
[+0x000] plistPrev : 0x8997c010 [Type: _List *]
[+0x004] plistNext : 0x898fe010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x8997c010)
((ACPI!_List *)0x8997c010) : 0x8997c010 [Type: _List *]
[+0x000] plistPrev : 0x898fa010 [Type: _List *]
[+0x004] plistNext : 0x89901010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x898fa010)
((ACPI!_List *)0x898fa010) : 0x898fa010 [Type: _List *] 45
[+0x000] plistPrev : 0x8980a010 [Type: _List *]
[+0x004] plistNext : 0x8997c010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x8980a010)
((ACPI!_List *)0x8980a010) : 0x8980a010 [Type: _List *]
[+0x000] plistPrev : 0x89808010 [Type: _List *]
[+0x004] plistNext : 0x898fa010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89808010)
((ACPI!_List *)0x89808010) : 0x89808010 [Type: _List *]
[+0x000] plistPrev : 0x89806010 [Type: _List *]
[+0x004] plistNext : 0x8980a010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89806010)
((ACPI!_List *)0x89806010) : 0x89806010 [Type: _List *]
[+0x000] plistPrev : 0x89804010 [Type: _List *]
[+0x004] plistNext : 0x89808010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89804010)
((ACPI!_List *)0x89804010) : 0x89804010 [Type: _List *]
[+0x000] plistPrev : 0x89802010 [Type: _List *]
[+0x004] plistNext : 0x89806010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89802010)
((ACPI!_List *)0x89802010) : 0x89802010 [Type: _List *] 50
[+0x000] plistPrev : 0x89800010 [Type: _List *]
[+0x004] plistNext : 0x89804010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x89800010)
((ACPI!_List *)0x89800010) : 0x89800010 [Type: _List *]
[+0x000] plistPrev : 0x897fe010 [Type: _List *]
[+0x004] plistNext : 0x89802010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897fe010)
((ACPI!_List *)0x897fe010) : 0x897fe010 [Type: _List *]
[+0x000] plistPrev : 0x897fc010 [Type: _List *]
[+0x004] plistNext : 0x89800010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897fc010)
((ACPI!_List *)0x897fc010) : 0x897fc010 [Type: _List *]
[+0x000] plistPrev : 0x897fa010 [Type: _List *]
[+0x004] plistNext : 0x897fe010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897fa010)
((ACPI!_List *)0x897fa010) : 0x897fa010 [Type: _List *]
[+0x000] plistPrev : 0x897f8010 [Type: _List *]
[+0x004] plistNext : 0x897fc010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897f8010)
((ACPI!_List *)0x897f8010) : 0x897f8010 [Type: _List *] 55
[+0x000] plistPrev : 0x897f6010 [Type: _List *]
[+0x004] plistNext : 0x897fa010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897f6010)
((ACPI!_List *)0x897f6010) : 0x897f6010 [Type: _List *]
[+0x000] plistPrev : 0x897f4010 [Type: _List *]
[+0x004] plistNext : 0x897f8010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897f4010)
((ACPI!_List *)0x897f4010) : 0x897f4010 [Type: _List *]
[+0x000] plistPrev : 0x897f2010 [Type: _List *]
[+0x004] plistNext : 0x897f6010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897f2010)
((ACPI!_List *)0x897f2010) : 0x897f2010 [Type: _List *]
[+0x000] plistPrev : 0x897f0010 [Type: _List *]
[+0x004] plistNext : 0x897f4010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897f0010)
((ACPI!_List *)0x897f0010) : 0x897f0010 [Type: _List *]
[+0x000] plistPrev : 0x897ee010 [Type: _List *]
[+0x004] plistNext : 0x897f2010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897ee010)
((ACPI!_List *)0x897ee010) : 0x897ee010 [Type: _List *] 60
[+0x000] plistPrev : 0x897ec010 [Type: _List *]
[+0x004] plistNext : 0x897f0010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897ec010)
((ACPI!_List *)0x897ec010) : 0x897ec010 [Type: _List *]
[+0x000] plistPrev : 0x897ea010 [Type: _List *]
[+0x004] plistNext : 0x897ee010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897ea010)
((ACPI!_List *)0x897ea010) : 0x897ea010 [Type: _List *]
[+0x000] plistPrev : 0x897e8010 [Type: _List *]
[+0x004] plistNext : 0x897ec010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897e8010)
((ACPI!_List *)0x897e8010) : 0x897e8010 [Type: _List *]
[+0x000] plistPrev : 0x897e6010 [Type: _List *]
[+0x004] plistNext : 0x897ea010 [Type: _List *]
1: kd> dx -r1 ((ACPI!_List *)0x897e6010)
((ACPI!_List *)0x897e6010) : 0x897e6010 [Type: _List *] 64
[+0x000] plistPrev : 0x898a2010 [Type: _List *]
[+0x004] plistNext : 0x897e8010 [Type: _List *]
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 = 0x897e5e0c
rc = 0n0
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 : 0x0 [Type: _call *]
[+0x014] pownerPrev : 0x0 [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.......
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> 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......
Method (PSTA, 2, NotSerialized)
{
Return (And (Arg0, Not (LEqual (Arg1, 0xFFFFFFFF))))
}
Device (P2P0)
{
Name (_ADR, 0x00110000) // _ADR: Address
Name (_HPP, Package (0x04) // _HPP: Hot Plug Parameters
{
0x08,
0x40,
0x01,
0x00
})
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x03,
0x03
})
Method (BSTA, 1, NotSerialized)
{
Return (PSTA (_STA (), Arg0))
}
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 077415ad
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (BSTA (ID))
}
如果ID=0xFFFF
LEqual (Arg1, 0xFFFFFFFF)=1
Not (LEqual (Arg1, 0xFFFFFFFF))=0
And (Arg0, Not (LEqual (Arg1, 0xFFFFFFFF)))=0
说明S1F0设备不存在。
Method (PSTA, 2, NotSerialized)
{
Return (And (Arg0, Not (LEqual (Arg1, 0xFFFFFFFF))))
}
如果ID!=0xFFFF
LEqual (Arg1, 0xFFFFFFFF)=0
Not (LEqual (Arg1, 0xFFFFFFFF))=1
And (Arg0, Not (LEqual (Arg1, 0xFFFFFFFF)))=1
说明S1F0设备存在。
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))
}
_STA ()=1说明父节点P2P0设备存在。
PCI\VEN_15AD&DEV_0774
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> 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 : 0 [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...........
8996cb88 00 00 00 00 00 00 00 00-1e 00 00 00 ac cb 96 89 ................
8996cb98 00 00 00 00 00 00 00 00-48 4d 45 54 2c 00 00 00 ........HMET,...
8996cba8 00 90 96 89 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996cbb8 00 00 00 00 02 a4 7b 68-80 93 69 0c ff ff ff ff ......{h..i.....
8996cbc8 00 00 00 00 48 4e 53 4f-44 00 00 00 00 90 96 89 ....HNSOD.......
8996cbd8 68 cb 96 89 38 cc 96 89-ac ff 9a 89 00 00 00 00 h...8...........
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.......
899affcc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899affdc 58 0d 9c 89 00 00 00 00-48 4f 52 47 34 00 00 00 X.......HORG4...
899affec 00 f0 9a 89 50 00 00 00-30 00 00 00 02 00 00 00 ....P...0.......
899afffc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899b000c 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
899b001c 44 00 00 00 00 f0 9a 89-64 a0 91 89 68 00 9b 89 D.......d...h...
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 = 0x897e5c18
rc = 0n0
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 : 0x0 [Type: _call *]
[+0x014] pownerPrev : 0x0 [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...........
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> 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> g
Breakpoint 71 hit
ACPI!ACPIGet:
f74076b8 55 push ebp
1: kd> kc
#
00 ACPI!ACPIGet
01 ACPI!GetPciAddressWorker
02 ACPI!GetPciAddress
03 ACPI!PciConfigSpaceHandlerWorker
04 ACPI!PciConfigSpaceHandler
05 ACPI!InternalOpRegionHandler
06 ACPI!AccessBaseField
07 ACPI!AccessFieldData
08 ACPI!ReadFieldObj
09 ACPI!RunContext
0a ACPI!DispatchCtxtQueue
0b ACPI!StartTimeSlicePassive
0c ACPI!ACPIWorker
0d nt!PspSystemThreadStartup
0e nt!KiThreadStartup
1: kd> dv
Target = 0x8996cd78
ObjectID = 0x5244415f
Flags = 0x48040402
SimpleArgument = 0x00000000
SimpleArgumentSize = 0
CallBackRoutine = 0xf740ceea
CallBackContext = 0x899c6330
Buffer = 0x899c6348
BufferSize = 0x00000000
completionRoutine = 0xf74076b9
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> r
eax=00000000 ebx=00000000 ecx=899c6348 edx=899c6330 esi=899c6330 edi=00000103
eip=f74076b8 esp=f791ab24 ebp=f791ab9c 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!ACPIGet:
f74076b8 55 push ebp
1: kd> db f791ab24
f791ab24 5e cf 40 f7 78 cd 96 89-5f 41 44 52 02 04 04 48 ^.@.x..._ADR...H
1: kd> g
Breakpoint 55 hit
ACPI!ACPIGet+0x248:
f7407900 e83dd90000 call ACPI!AMLIAsyncEvalObject (f7415242)
1: kd> g
Breakpoint 33 hit
ACPI!AMLIAsyncEvalObject:
f7415242 55 push ebp
1: kd> g
Breakpoint 37 hit
ACPI!AsyncEvalObject:
f741f8c9 55 push ebp
1: kd> be 42
1: kd> be 39
1: kd> be 11
1: kd> be 45
1: kd> be 54
1: kd> g
Breakpoint 42 hit
ACPI!RestartContext:
f74207d4 55 push ebp
1: kd> kc
#
00 ACPI!RestartContext
01 ACPI!AsyncEvalObject
02 ACPI!AMLIAsyncEvalObject
03 ACPI!ACPIGet
04 ACPI!GetPciAddressWorker
05 ACPI!GetPciAddress
06 ACPI!PciConfigSpaceHandlerWorker
07 ACPI!PciConfigSpaceHandler
08 ACPI!InternalOpRegionHandler
09 ACPI!AccessBaseField
0a ACPI!AccessFieldData
0b ACPI!ReadFieldObj
0c ACPI!RunContext
0d ACPI!DispatchCtxtQueue
0e ACPI!StartTimeSlicePassive
0f ACPI!ACPIWorker
10 nt!PspSystemThreadStartup
11 nt!KiThreadStartup
1: kd> dv
pctxt = 0x8984f000
fDelayExecute = 0x00 ''
1: kd> gu
ACPI!AsyncEvalObject+0x28c:
f741fb55 59 pop ecx