P2P0的STA方法完成后子节点S1F0存在完整调试过程到S2F0--重要

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节点。