ACPI!ACPIBuildProcessRunMethodPhaseRecurse函数分析根节点下循环了10次调试记录

ACPI!ACPIBuildProcessRunMethodPhaseRecurse函数分析根节点下循环了10次调试记录

NTSTATUS

ACPIBuildProcessRunMethodPhaseRecurse(

IN PACPI_BUILD_REQUEST BuildRequest

)

{

for(childExtension = ACPIExtListStartEnum(&eled);

ACPIExtListTestElement(&eled, (BOOLEAN) NT_SUCCESS(status));

childExtension = ACPIExtListEnumNext(&eled)) {

//

// Make a request to run the control method on this child

//

status = ACPIBuildRunMethodRequest(

childExtension,

NULL,

NULL,

BuildRequest->RunRequest.ControlMethodName,

BuildRequest->RunRequest.Flags,

FALSE

);

}

0: 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

0: kd> dv

BuildRequest = 0x89906e30

childExtension = 0x89906e30

deviceExtension = 0x00000346

eled = struct EXTENSIONLIST_ENUMDATA

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906e30 -r

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b870 - 0xf743b870 ]

+0x000 Flink : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

+0x000 Flink : 0x89906e30 _LIST_ENTRY [ 0xf743b870 - 0xf743b870 ]

+0x004 Blink : 0x89906e30 _LIST_ENTRY [ 0xf743b870 - 0xf743b870 ]

+0x004 Blink : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

+0x000 Flink : 0x89906e30 _LIST_ENTRY [ 0xf743b870 - 0xf743b870 ]

+0x004 Blink : 0x89906e30 _LIST_ENTRY [ 0xf743b870 - 0xf743b870 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0xc

+0x00c UFlags : __unnamed

+0x000 Device : 0y0

+0x000 Sync : 0y0

+0x000 Run : 0y1

+0x000 ReleaseReference : 0y1

+0x000 Reserved1 : 0y00000000 (0)

+0x000 ValidTarget : 0y0

+0x000 Reserved2 : 0y0000000000000000000 (0)

+0x010 WorkDone : 1

+0x014 CurrentWorkDone : 6

+0x018 NextWorkDone : 2

+0x01c BuildContext : 0x89981a18 Void

+0x020 Status : 0n0

+0x024 CurrentObject : 0x899afccc _NSObj

+0x000 list : _List

+0x000 plistPrev : 0x899afc88 _List

+0x004 plistNext : 0x899aff4c _List

+0x008 pnsParent : 0x899af0f0 _NSObj

+0x000 list : _List

+0x008 pnsParent : 0x899af024 _NSObj

+0x00c pnsFirstChild : 0x899af474 _NSObj

+0x010 dwNameSeg : 0x5f42535f

+0x014 hOwner : (null)

+0x018 pnsOwnedNext : (null)

+0x01c ObjData : _ObjData

+0x030 Context : 0x89981a18 Void

+0x034 dwRefCount : 0

+0x00c pnsFirstChild : (null)

+0x010 dwNameSeg : 0x494e495f

+0x014 hOwner : 0x899af330 Void

+0x018 pnsOwnedNext : 0x899afc88 _NSObj

+0x000 list : _List

+0x008 pnsParent : 0x899af0f0 _NSObj

+0x00c pnsFirstChild : (null)

+0x010 dwNameSeg : 0x47414c46

+0x014 hOwner : 0x899af330 Void

+0x018 pnsOwnedNext : 0x899afc44 _NSObj

+0x01c ObjData : _ObjData

+0x030 Context : (null)

+0x034 dwRefCount : 0

+0x01c ObjData : _ObjData

+0x000 dwfData : 0

+0x002 dwDataType : 8

+0x004 dwRefCount : 0

+0x004 pdataBase : (null)

+0x008 dwDataValue : 0

+0x008 uipDataValue : 0

+0x008 pnsAlias : (null)

+0x008 pdataAlias : (null)

+0x008 powner : (null)

+0x00c dwDataLen : 0x230

+0x010 pbDataBuff : 0x899afd10 ""

+0x030 Context : (null)

+0x034 dwRefCount : 0

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x000 ResultData : _ObjData

+0x000 dwfData : 0x495f

+0x002 dwDataType : 0x494e

+0x004 dwRefCount : 7

+0x004 pdataBase : 0x00000007 _ObjData

+0x008 dwDataValue : 0

+0x008 uipDataValue : 0

+0x008 pnsAlias : (null)

+0x008 pdataAlias : (null)

+0x008 powner : (null)

+0x00c dwDataLen : 0

+0x010 pbDataBuff : (null)

+0x030 RunRequest : __unnamed

+0x000 ControlMethodName : 0x494e495f

+0x000 ControlMethodNameAsUchar : [4] "_INI"

+0x004 Flags : 7

+0x004 UFlags : __unnamed

+0x000 CheckStatus : 0y1

+0x000 MarkIni : 0y1

+0x000 Recursive : 0y1

+0x000 CheckWakeCount : 0y0

+0x000 RegOn : 0y0

+0x000 RegOff : 0y0

+0x000 StopAtBridges : 0y0

+0x000 Reserved : 0y0000000000000000000000000 (0)

+0x030 SynchronizeRequest : __unnamed

+0x000 SynchronizeListEntry : 0x494e495f _LIST_ENTRY

+0x000 Flink : ????

+0x004 Blink : ????

+0x004 SynchronizeMethodName : 7

+0x004 SynchronizeMethodNameAsUchar : [4] "???"

+0x008 Flags : 0

+0x008 UFlags : __unnamed

+0x000 HasMethod : 0y0

+0x000 Reserved : 0y0000000000000000000000000000000 (0)

+0x044 Integer : 0xf

+0x044 String : 0x0000000f "--- memory read error at address 0x0000000f ---"

+0x044 TargetListEntry : 0x0000000f _LIST_ENTRY

+0x000 Flink : ????

+0x004 Blink : ????

Memory read error 00000013

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0xf743b890 - 0xf743b890 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0xf743b890 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0xf743b890 \[Type: _LIST_ENTRY \*

第一个:

0: kd> gu

Breakpoint 9 hit

eax=899c0d01 ebx=00000000 ecx=899c0ea0 edx=89981b58 esi=89906e30 edi=00000000

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> kc

00 ACPI!ACPIBuildRunMethodRequest

01 ACPI!ACPIBuildProcessRunMethodPhaseRecurse

02 ACPI!ACPIBuildProcessGenericList

03 ACPI!ACPIBuildDeviceDpc

04 nt!KiRetireDpcList

05 nt!KiDispatchInterrupt

WARNING: Frame IP not in any known module. Following frames may be wrong.

06 0x0

0: kd> dv

DeviceExtension = 0x899c0d58

CallBack = 0x00000000

CallBackContext = 0x00000000

MethodName = 0x494e495f

MethodFlags = 7

RunDPC = 0x00 ''

syncRequest = 0x00000000

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x899c0d58)

((ACPI!_DEVICE_EXTENSION *)0x899c0d58) : 0x899c0d58 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0xa \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x899affac \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: 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...

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000000

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906d70 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906d70 \[Type: _LIST_ENTRY \*

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906d70

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b890 - 0xf743b890 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x899c0d58 Void +0x01c BuildContext : 0x899c0d58

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

0: kd> gu

Breakpoint 9 hit

eax=899ae001 ebx=00000000 ecx=899ae150 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906d20 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906d20 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906d70)

((ACPI!_LIST_ENTRY *)0x89906d70) : 0x89906d70 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906d20 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0xf743b890 \[Type: _LIST_ENTRY \*

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906d20

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b890 - 0x89906d70 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x899ae008 Void

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x899ae008)

((ACPI!_DEVICE_EXTENSION *)0x899ae008) : 0x899ae008 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0xa \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x899b4518 \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: kd> db 0x899b4518

899b4518 70 44 9b 89 04 48 9b 89-f0 f0 9a 89 5c 45 9b 89 pD...H......\E..

899b4528 42 41 54 31 30 f3 9a 89-70 44 9b 89 00 00 06 00 BAT10...pD......

899b4538 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

899b4548 08 e0 9a 89 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...

899b4558 00 f0 9a 89 84 47 9b 89-a0 45 9b 89 18 45 9b 89 .....G...E...E..

899b4568 00 00 00 00 5f 48 49 44-30 f3 9a 89 18 45 9b 89 ...._HID0....E..

899b4578 00 00 01 00 00 00 00 00-41 d0 0c 0a 00 00 00 00 ........A.......

899b4588 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

第三个:

0: kd> gu

Breakpoint 9 hit

eax=899aee01 ebx=00000000 ecx=899aefa0 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> dv

DeviceExtension = 0x899aee58

CallBack = 0x00000000

CallBackContext = 0x00000000

MethodName = 0x494e495f

MethodFlags = 7

RunDPC = 0x00 ''

syncRequest = 0x00000000

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x899aee58)

((ACPI!_DEVICE_EXTENSION *)0x899aee58) : 0x899aee58 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0xa \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x899b4804 \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: kd> db 0x899b4804

899b4804 18 45 9b 89 70 4a 9b 89-f0 f0 9a 89 48 48 9b 89 .E..pJ......HH..

899b4814 42 41 54 32 30 f3 9a 89-84 47 9b 89 00 00 06 00 BAT20....G......

899b4824 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

899b4834 58 ee 9a 89 00 00 00 00-48 4e 53 4f 44 00 00 00 X.......HNSOD...

899b4844 00 f0 9a 89 08 4a 9b 89-8c 48 9b 89 04 48 9b 89 .....J...H...H..

899b4854 00 00 00 00 5f 48 49 44-30 f3 9a 89 04 48 9b 89 ...._HID0....H..

899b4864 00 00 01 00 00 00 00 00-41 d0 0c 0a 00 00 00 00 ........A.......

899b4874 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906cd0 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906cd0 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906d70)

((ACPI!_LIST_ENTRY *)0x89906d70) : 0x89906d70 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906d20 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0xf743b890 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906d20)

((ACPI!_LIST_ENTRY *)0x89906d20) : 0x89906d20 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906cd0 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906d70 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906cd0)

((ACPI!_LIST_ENTRY *)0x89906cd0) : 0x89906cd0 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0xf743b890 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906d20 \[Type: _LIST_ENTRY \*

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906cd0

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b890 - 0x89906d20 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x899aee58 Void

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

第4个:

0: kd> gu

Breakpoint 9 hit

eax=899aec01 ebx=00000000 ecx=899aeda0 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> dv

DeviceExtension = 0x899aec58

CallBack = 0x00000000

CallBackContext = 0x00000000

MethodName = 0x494e495f

MethodFlags = 7

RunDPC = 0x00 ''

syncRequest = 0x00000000

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x899aec58)

((ACPI!_DEVICE_EXTENSION *)0x899aec58) : 0x899aec58 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0xa \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x899b4a70 \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: kd> db 0x899b4a70

899b4a70 04 48 9b 89 64 4c 9b 89-f0 f0 9a 89 b4 4a 9b 89 .H..dL.......J..

899b4a80 41 43 41 44 30 f3 9a 89-08 4a 9b 89 00 00 06 00 ACAD0....J......

899b4a90 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

899b4aa0 58 ec 9a 89 00 00 00 00-48 4e 53 4f 44 00 00 00 X.......HNSOD...

899b4ab0 00 f0 9a 89 fc 4b 9b 89-f8 4a 9b 89 70 4a 9b 89 .....K...J..pJ..

899b4ac0 00 00 00 00 5f 48 49 44-30 f3 9a 89 70 4a 9b 89 ...._HID0...pJ..

899b4ad0 00 00 02 00 00 00 00 00-00 00 00 00 09 00 00 00 ................

899b4ae0 f0 3c 9b 89 00 00 00 00-00 00 00 00 48 4e 53 4f .<..........HNSO

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906c80 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906c80 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906d70)

((ACPI!_LIST_ENTRY *)0x89906d70) : 0x89906d70 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906d20 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0xf743b890 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906d20)

((ACPI!_LIST_ENTRY *)0x89906d20) : 0x89906d20 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906cd0 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906d70 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906cd0)

((ACPI!_LIST_ENTRY *)0x89906cd0) : 0x89906cd0 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906c80 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906d20 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906c80)

((ACPI!_LIST_ENTRY *)0x89906c80) : 0x89906c80 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0xf743b890 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906cd0 \[Type: _LIST_ENTRY \*

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906c80

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b890 - 0x89906cd0 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x899aec58 Void

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

第5个:

0: kd> gu

Breakpoint 9 hit

eax=899aea01 ebx=00000000 ecx=899aeb88 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> dv

DeviceExtension = 0x899aea40

CallBack = 0x00000000

CallBackContext = 0x00000000

MethodName = 0x494e495f

MethodFlags = 7

RunDPC = 0x00 ''

syncRequest = 0x00000000

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x899aea40)

((ACPI!_DEVICE_EXTENSION *)0x899aea40) : 0x899aea40 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0xa \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x899b4d34 \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: kd> db 0x899b4d34

899b4d34 a8 4c 9b 89 54 a5 96 89-f0 f0 9a 89 ac 4d 9b 89 .L..T........M..

899b4d44 53 4c 50 42 30 f3 9a 89-a8 4c 9b 89 00 00 06 00 SLPB0....L......

899b4d54 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

899b4d64 40 ea 9a 89 00 00 00 00-48 4f 52 47 34 00 00 00 @.......HORG4...

899b4d74 00 f0 9a 89 00 10 ab f7-00 05 00 00 00 00 00 00 ................

899b4d84 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

899b4d94 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

899b4da4 44 00 00 00 00 f0 9a 89-d0 4e 9b 89 48 4e 9b 89 D........N..HN..

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906c30 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906c30 \[Type: _LIST_ENTRY \*\] 最后建立的请求 0: kd\> dt ACPI!_ACPI_BUILD_REQUEST 0x89906c30 +0x000 ListEntry : _LIST_ENTRY \[ 0xf743b890 - 0x89906c80

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x899aea40 Void

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

第6个:

0: kd> gu

Breakpoint 9 hit

eax=899ab601 ebx=00000000 ecx=899ab7d8 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> dv

DeviceExtension = 0x899ab690

CallBack = 0x00000000

CallBackContext = 0x00000000

MethodName = 0x494e495f

MethodFlags = 7

RunDPC = 0x00 ''

syncRequest = 0x00000000

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x899ab690)

((ACPI!_DEVICE_EXTENSION *)0x899ab690) : 0x899ab690 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0x8011e0100030000a \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x8996aed4 \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: kd> db 0x8996aed4

8996aed4 14 ae 96 89 84 b0 96 89-f0 f0 9a 89 4c af 96 89 ............L...

8996aee4 43 50 30 30 30 f3 9a 89-14 ae 96 89 00 00 0c 00 CP000...........

8996aef4 00 00 00 00 00 00 00 00-0c 00 00 00 08 81 9b 89 ................

8996af04 90 b6 9a 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...

8996af14 00 90 96 89 c4 00 00 00-04 00 00 00 02 00 00 00 ................

8996af24 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

8996af34 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

8996af44 44 00 00 00 00 90 96 89-1c b0 96 89 b4 af 96 89 D...............

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906be0 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906be0 \[Type: _LIST_ENTRY \*

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906be0

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b890 - 0x89906c30 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x899ab690 Void

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

第7个:

0: kd> gu

Breakpoint 9 hit

eax=8990ea01 ebx=00000000 ecx=8990ec38 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> dv

DeviceExtension = 0x8990eaf0

CallBack = 0x00000000

CallBackContext = 0x00000000

MethodName = 0x494e495f

MethodFlags = 7

RunDPC = 0x00 ''

syncRequest = 0x00000000

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x8990eaf0)

((ACPI!_DEVICE_EXTENSION *)0x8990eaf0) : 0x8990eaf0 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0xa \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x8991a9a0 \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: kd> db 0x8991a9a0

8991a9a0 34 a9 91 89 c4 ab 91 89-f0 f0 9a 89 e4 a9 91 89 4...............

8991a9b0 4c 49 44 5f 30 f3 9a 89-34 a9 91 89 00 00 06 00 LID_0...4.......

8991a9c0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

8991a9d0 f0 ea 90 89 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...

8991a9e0 00 20 91 89 50 ab 91 89-60 aa 91 89 a0 a9 91 89 . ..P...`.......

8991a9f0 00 00 00 00 5f 48 49 44-30 f3 9a 89 a0 a9 91 89 ...._HID0.......

8991aa00 00 00 02 00 00 00 00 00-00 00 00 00 08 00 00 00 ................

8991aa10 3c a5 96 89 00 00 00 00-00 00 00 00 48 50 4b 47 <...........HPKG

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906b90 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906b90 \[Type: _LIST_ENTRY \*

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906b90

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b890 - 0x89906be0 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x8990eaf0 Void

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

第8个:

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906b90 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906b90 \[Type: _LIST_ENTRY \*

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906b90

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b890 - 0x89906be0 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x8990eaf0 Void

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

0: kd> gu

Breakpoint 9 hit

eax=8990e801 ebx=00000000 ecx=8990ea20 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> dv

DeviceExtension = 0x8990e8d8

CallBack = 0x00000000

CallBackContext = 0x00000000

MethodName = 0x494e495f

MethodFlags = 7

RunDPC = 0x00 ''

syncRequest = 0x00000000

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x8990e8d8)

((ACPI!_DEVICE_EXTENSION *)0x8990e8d8) : 0x8990e8d8 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0xa \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x8991acd8 \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: kd> db 0x8991acd8

8991acd8 c4 ab 91 89 10 f2 91 89-f0 f0 9a 89 1c ad 91 89 ................

8991ace8 4e 56 44 5f 30 f3 9a 89-c4 ab 91 89 00 00 06 00 NVD_0...........

8991acf8 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

8991ad08 d8 e8 90 89 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...

8991ad18 00 20 91 89 1c f1 91 89-98 ad 91 89 d8 ac 91 89 . ..............

8991ad28 00 00 00 00 5f 48 49 44-30 f3 9a 89 d8 ac 91 89 ...._HID0.......

8991ad38 00 00 02 00 00 00 00 00-00 00 00 00 08 00 00 00 ................

8991ad48 c4 9c 91 89 00 00 00 00-00 00 00 00 48 50 4b 47 ............HPKG

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906b40 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906b40 \[Type: _LIST_ENTRY \*

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906b40

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b890 - 0x89906b90 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x8990e8d8 Void

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

第9个:

0: kd> gu

Breakpoint 9 hit

eax=89906001 ebx=00000000 ecx=89906150 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> dv

DeviceExtension = 0x89906008

CallBack = 0x00000000

CallBackContext = 0x00000000

MethodName = 0x494e495f

MethodFlags = 7

RunDPC = 0x00 ''

syncRequest = 0x00000000

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x89906008)

((ACPI!_DEVICE_EXTENSION *)0x89906008) : 0x89906008 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0x8011e0100030000a \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x8991f8f8 \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: kd> db 0x8991f8f8

8991f8f8 4c f6 91 89 9c f8 91 89-f0 f0 9a 89 3c f9 91 89 L...........<...

8991f908 43 50 30 31 30 f3 9a 89-30 f8 91 89 00 00 0c 00 CP010...0.......

8991f918 00 00 00 00 00 00 00 00-0c 00 00 00 20 81 9b 89 ............ ...

8991f928 08 60 90 89 00 00 00 00-48 4e 53 4f 44 00 00 00 .`......HNSOD...

8991f938 00 20 91 89 c4 fa 91 89-80 f9 91 89 f8 f8 91 89 . ..............

8991f948 00 00 00 00 43 50 49 44-30 f3 9a 89 f8 f8 91 89 ....CPID0.......

8991f958 00 00 01 00 00 00 00 00-01 00 00 00 00 00 00 00 ................

8991f968 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906af0 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906af0 \[Type: _LIST_ENTRY \*

0: kd> dt ACPI!_ACPI_BUILD_REQUEST 0x89906af0

+0x000 ListEntry : _LIST_ENTRY [ 0xf743b890 - 0x89906b40 ]

+0x008 Signature : 0x5f534750

+0x00c Flags : 0x100c

+0x00c UFlags : __unnamed

+0x010 WorkDone : 3

+0x014 CurrentWorkDone : 0

+0x018 NextWorkDone : 0

+0x01c BuildContext : 0x89906008 Void

+0x020 Status : 0n0

+0x024 CurrentObject : (null)

+0x028 CallBack : (null)

+0x02c CallBackContext : (null)

+0x030 DeviceRequest : __unnamed

+0x030 RunRequest : __unnamed

+0x030 SynchronizeRequest : __unnamed

+0x044 Integer : 0xf743b870

+0x044 String : 0xf743b870 "0n???"

+0x044 TargetListEntry : 0xf743b870 _LIST_ENTRY [ 0x89906e30 - 0x89906e30 ]

第10个:

0: kd> gu

Breakpoint 9 hit

eax=89906e01 ebx=00000000 ecx=89906fe8 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fbfb8 esp=f789ef1c ebp=f789ef60 iopl=0 nv up ei pl nz na po nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202

ACPI!ACPIBuildRunMethodRequest:

f73fbfb8 55 push ebp

0: kd> dv

DeviceExtension = 0x89906ea0

CallBack = 0x00000000

CallBackContext = 0x00000000

MethodName = 0x494e495f

MethodFlags = 7

RunDPC = 0x00 ''

syncRequest = 0x00000000

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x89906ea0)

((ACPI!_DEVICE_EXTENSION *)0x89906ea0) : 0x89906ea0 [Type: _DEVICE_EXTENSION *]

+0x000\] Flags : 0x18a0000036000a \[Type: unsigned __int64

+0x12c\] AcpiObject : 0x0 \[Type: _NSObj \*

+0x130\] DeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x134\] TargetDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x138\] PhysicalDeviceObject : 0x0 \[Type: _DEVICE_OBJECT \*

+0x13c\] ParentExtension : 0x89981a18 \[Type: _DEVICE_EXTENSION \*

+0x140\] ChildDeviceList \[Type: _LIST_ENTRY

+0x148\] SiblingDeviceList \[Type: _LIST_ENTRY

+0x150\] EjectDeviceHead \[Type: _LIST_ENTRY

+0x158\] EjectDeviceList \[Type: _LIST_ENTRY

0: kd> gu

eax=00000103 ebx=00000000 ecx=f743b898 edx=f743b870 esi=89906e30 edi=00000103

eip=f73fd70d esp=f789ef38 ebp=f789ef60 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+0x5d:

f73fd70d 8bf8 mov edi,eax

0: kd> x acpi!AcpiBuildQueueList

f743b890 ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906d70 - 0x89906aa0 ]

0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))

(*((ACPI!_LIST_ENTRY *)0xf743b890)) [Type: _LIST_ENTRY]

+0x000\] Flink : 0x89906d70 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906aa0 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906d70)

((ACPI!_LIST_ENTRY *)0x89906d70) : 0x89906d70 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906d20 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0xf743b890 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906d20)

((ACPI!_LIST_ENTRY *)0x89906d20) : 0x89906d20 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906cd0 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906d70 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906cd0)

((ACPI!_LIST_ENTRY *)0x89906cd0) : 0x89906cd0 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906c80 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906d20 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906c80)

((ACPI!_LIST_ENTRY *)0x89906c80) : 0x89906c80 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906c30 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906cd0 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906c30)

((ACPI!_LIST_ENTRY *)0x89906c30) : 0x89906c30 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906be0 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906c80 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906be0)

((ACPI!_LIST_ENTRY *)0x89906be0) : 0x89906be0 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906b90 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906c30 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906b90)

((ACPI!_LIST_ENTRY *)0x89906b90) : 0x89906b90 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906b40 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906be0 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906b40)

((ACPI!_LIST_ENTRY *)0x89906b40) : 0x89906b40 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906af0 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906b90 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906af0)

((ACPI!_LIST_ENTRY *)0x89906af0) : 0x89906af0 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0x89906aa0 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906b40 \[Type: _LIST_ENTRY \*

0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906aa0)

((ACPI!_LIST_ENTRY *)0x89906aa0) : 0x89906aa0 [Type: _LIST_ENTRY *]

+0x000\] Flink : 0xf743b890 \[Type: _LIST_ENTRY \*

+0x004\] Blink : 0x89906af0 \[Type: _LIST_ENTRY \*

上一次里面有404个!

这一次是根节点下的一级子节点10个。

下一次是PCI0节点下的子节点79个。此时还有9个没有运行,acpi!AcpiBuildQueueList链表里面共:9+79=88个。