为了得到子节点S1F0的总线号和插槽号需要先得到父节点P2P0的总线号和插槽号

为了得到子节点S1F0的总线号和插槽号需要先得到父节点P2P0的总线号和插槽号

1: kd> kc

00 ACPI!GetPciAddressWorker

01 ACPI!ACPIGetWorkerForInteger

02 ACPI!AsyncCallBack

03 ACPI!RunContext

04 ACPI!DispatchCtxtQueue

05 ACPI!StartTimeSlicePassive

06 ACPI!ACPIWorker

07 nt!PspSystemThreadStartup

08 nt!KiThreadStartup

1: kd> dv

AcpiObject = 0x8996d4d4

Status = 0n0

Result = 0x00000000

Context = 0x899c1460

buffer = unsigned char [64] ""

1: kd> db 0x8996d4d4

8996d4d4 1c d8 96 89 18 d5 96 89-5c d4 96 89 00 00 00 00 ........\.......

8996d4e4 5f 41 44 52 30 f3 9a 89-5c d4 96 89 00 00 01 00 _ADR0...\.......

8996d4f4 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

8996d504 00 00 00 00 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...

8996d514 00 90 96 89 d4 d4 96 89-b8 d5 96 89 5c d4 96 89 ............\...

8996d524 00 00 00 00 5f 53 55 4e-30 f3 9a 89 d4 d4 96 89 ...._SUN0.......

8996d534 00 00 01 00 00 00 00 00-20 00 00 00 00 00 00 00 ........ .......

8996d544 00 00 00 00 00 00 00 00-00 00 00 00 48 4f 52 47 ............HORG

1: kd> dx -r1 ((ACPI!_NSObj *)0x8996d4d4)

((ACPI!_NSObj *)0x8996d4d4) : 0x8996d4d4 [Type: _NSObj *]

+0x000\] list \[Type: _List

+0x008\] pnsParent : 0x8996d45c \[Type: _NSObj \*

+0x00c\] pnsFirstChild : 0x0 \[Type: _NSObj \*

+0x010\] dwNameSeg : 0x5244415f \[Type: unsigned long

+0x014\] hOwner : 0x899af330 \[Type: void \*

+0x018\] pnsOwnedNext : 0x8996d45c \[Type: _NSObj \*

+0x01c\] ObjData \[Type: _ObjData

+0x030\] Context : 0x0 \[Type: void \*

+0x034\] dwRefCount : 0x0 \[Type: unsigned long

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

1: kd> dx -r1 ((ACPI!_NSObj *)0x8996d45c)

((ACPI!_NSObj *)0x8996d45c) : 0x8996d45c [Type: _NSObj *]

+0x000\] list \[Type: _List

+0x008\] pnsParent : 0x8996cd78 \[Type: _NSObj \*

+0x00c\] pnsFirstChild : 0x8996d4d4 \[Type: _NSObj \*

+0x010\] dwNameSeg : 0x30463153 \[Type: unsigned long

+0x014\] hOwner : 0x899af330 \[Type: void \*

+0x018\] pnsOwnedNext : 0x8996d298 \[Type: _NSObj \*

+0x01c\] ObjData \[Type: _ObjData

+0x030\] Context : 0x89968c88 \[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......

Device (P2P0)

{

Name (_ADR, 0x00110000) // _ADR: Address

Device (S1F0)

{

Name (_ADR, Zero) // _ADR: Address

Name (_SUN, 0x20) // _SUN: Slot User Number

1: kd> dt GET_ADDRESS_CONTEXT 0x899c1460

ACPI!GET_ADDRESS_CONTEXT

+0x000 PciObject : 0x8996d45c _NSObj

+0x004 Bus : 0x898a8a48 ""

+0x008 Slot : 0x898a8a44 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER

+0x014 Flags : 8 #define PCISUPP_CHECKED_ADR 8

+0x018 Address : 0 地址为:0

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n0

+0x024 CompletionRoutine : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker+0

+0x028 CompletionContext : 0x898a8a10 Void

#define PCISUPP_CHECKED_ADR 8

//

// First, determine the slot number.

//

if (!(state->Flags & PCISUPP_CHECKED_ADR)) { 已经得到地址为:0

if (!(state->Flags & PCISUPP_GOT_SLOT_INFO)) {

//

// Build a PCI_SLOT_NUMBER out of the integer returned

// from the interpretter.

//

state->Slot->u.bits.FunctionNumber = (state->Address) & 0x7;

state->Slot->u.bits.DeviceNumber = ( (state->Address) >> 16) & 0x1f;

state->Flags |= PCISUPP_GOT_SLOT_INFO;

}

#define PCISUPP_GOT_SLOT_INFO 0x100

1: kd> dt GET_ADDRESS_CONTEXT 0x899c1460

ACPI!GET_ADDRESS_CONTEXT

+0x000 PciObject : 0x8996d45c _NSObj

+0x004 Bus : 0x898a8a48 ""

+0x008 Slot : 0x898a8a44 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER

+0x014 Flags : 0x108 #define PCISUPP_GOT_SLOT_INFO 0x100

+0x018 Address : 0

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n1

+0x024 CompletionRoutine : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker+0

+0x028 CompletionContext : 0x898a8a10 Void

1: kd> dt _PCI_SLOT_NUMBER 0x898a8a44 -r

hal!_PCI_SLOT_NUMBER

+0x000 u : __unnamed

+0x000 bits : __unnamed

+0x000 DeviceNumber : 0y00000 (0)

+0x000 FunctionNumber : 0y000

+0x000 Reserved : 0y000000000000000000000000 (0)

+0x000 AsULONG : 0

//

// Next, get the bus number, if possible.

//

*state->Bus = 0; // default value, in case we have to guess

//

// Check first to see if this bus has a _HID.

// (It might be a root PCI bridge.)

//

bus = state->PciObject;

tempObj = ACPIAmliGetNamedChild(bus, PACKED_HID);

if (!tempObj) {

//

// This device had no _HID. So look up

// to the parent and see if it is a

// root PCI bridge.

//

bus = state->PciObject->pnsParent;

tempObj = ACPIAmliGetNamedChild(bus, PACKED_HID);

}

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

//

// Check first to see if this bus has a _HID.

// (It might be a root PCI bridge.)

//

bus = state->PciObject;

tempObj = ACPIAmliGetNamedChild(bus, PACKED_HID);

1: kd> p

eax=00000000 ebx=8996d45c ecx=8996d45c edx=00000000 esi=899c1460 edi=00000103

eip=f740cfb3 esp=f791ac60 ebp=f791acb0 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!GetPciAddressWorker+0xc9:

f740cfb3 85c0 test eax,eax

if (!tempObj) {

//

// This device had no _HID. So look up

// to the parent and see if it is a

// root PCI bridge.

//

bus = state->PciObject->pnsParent; eax=8996d45c

1: kd> p

eax=8996d45c ebx=8996cd78 ecx=8996d45c edx=00000000 esi=899c1460 edi=00000103

eip=f740cfbc esp=f791ac60 ebp=f791acb0 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!GetPciAddressWorker+0xd2:

f740cfbc 685f484944 push 4449485Fh

tempObj = ACPIAmliGetNamedChild(bus, PACKED_HID);=eax=00000000

1: kd> p

eax=00000000 ebx=8996cd78 ecx=8996cd78 edx=00000000 esi=899c1460 edi=00000103

eip=f740cfc7 esp=f791ac60 ebp=f791acb0 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!GetPciAddressWorker+0xdd:

f740cfc7 85c0 test eax,eax

}

1: kd> dx -id 0,0,899a2278 -r1 ((ACPI!_NSObj *)0x8996d45c)

((ACPI!_NSObj *)0x8996d45c) : 0x8996d45c [Type: _NSObj *]

+0x000\] list \[Type: _List

+0x008\] pnsParent : 0x8996cd78 \[Type: _NSObj \*

+0x00c\] pnsFirstChild : 0x8996d4d4 \[Type: _NSObj \*

+0x010\] dwNameSeg : 0x30463153 \[Type: unsigned long

+0x014\] hOwner : 0x899af330 \[Type: void \*

+0x018\] pnsOwnedNext : 0x8996d298 \[Type: _NSObj \*

+0x01c\] ObjData \[Type: _ObjData

+0x030\] Context : 0x89968c88 \[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.......

Device (P2P0)

{

Name (_ADR, 0x00110000) // _ADR: Address

也没有PACKED_HID

1: kd> dt GET_ADDRESS_CONTEXT 0x899c1460

ACPI!GET_ADDRESS_CONTEXT

+0x000 PciObject : 0x8996d45c _NSObj

+0x004 Bus : 0x898a8a48 ""

+0x008 Slot : 0x898a8a44 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER

+0x014 Flags : 0x108

+0x018 Address : 0

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n1

+0x024 CompletionRoutine : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker+0

+0x028 CompletionContext : 0x898a8a10 Void

if (!tempObj) {

//

// This PCI device is on a PCI bus that

// is created by a PCI-PCI bridge.

//

if (!(state->Flags & PCISUPP_CHECKED_PARENT)) {

state->Flags |= PCISUPP_CHECKED_PARENT;

status = GetPciAddress(

bus,

GetPciAddressWorker,

(PVOID)state,

&state->ParentBus,

&state->ParentSlot

);

#define PCISUPP_CHECKED_PARENT 0x20

1: kd> kc

00 ACPI!GetPciAddress

01 ACPI!GetPciAddressWorker

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

PciObj = 0x8996cd78

CompletionRoutine = 0xf740ceea

Context = 0x899c1460

Bus = 0x899c146c ""

Slot = 0x899c1470

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

得到P2P0的总线号和插槽号。

第二部分:

1: kd> g

Breakpoint 63 hit

eax=8996cd78 ebx=8996cd78 ecx=899c1470 edx=898a8848 esi=f740ceea edi=898a8874

eip=f740ceea esp=f791ac28 ebp=f791ac44 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!GetPciAddressWorker:

f740ceea 55 push ebp

1: kd> kc

00 ACPI!GetPciAddressWorker

01 ACPI!GetPciAddress

02 ACPI!GetPciAddressWorker

03 ACPI!ACPIGetWorkerForInteger

04 ACPI!AsyncCallBack

05 ACPI!RunContext

06 ACPI!DispatchCtxtQueue

07 ACPI!StartTimeSlicePassive

08 ACPI!ACPIWorker

09 nt!PspSystemThreadStartup

0a nt!KiThreadStartup

1: kd> dv

AcpiObject = 0x8996cd78

Status = 0n0

Result = 0x00000000

Context = 0x898a8848

buffer = unsigned char [64] ""

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> dt GET_ADDRESS_CONTEXT 0x898a8848

ACPI!GET_ADDRESS_CONTEXT
+0x000 PciObject : 0x8996cd78 _NSObj

+0x004 Bus : 0x899c146c ""

+0x008 Slot : 0x899c1470 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER
+0x014 Flags : 0 什么步骤都没有做

+0x018 Address : 0

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n-1

+0x024 CompletionRoutine : 0xf740ceea void ACPI!GetPciAddressWorker+0

+0x028 CompletionContext : 0x899c1460 Void

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> dt GET_ADDRESS_CONTEXT 0x898a8848

ACPI!GET_ADDRESS_CONTEXT

+0x000 PciObject : 0x8996cd78 _NSObj

+0x004 Bus : 0x899c146c ""

+0x008 Slot : 0x899c1470 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER

+0x014 Flags : 0

+0x018 Address : 0

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n-1

+0x024 CompletionRoutine : 0xf740ceea void ACPI!GetPciAddressWorker+0

+0x028 CompletionContext : 0x899c1460 Void

//

// First, determine the slot number.

//

if (!(state->Flags & PCISUPP_CHECKED_ADR)) {

//
// Get the _ADR.
//
state->Flags |= PCISUPP_CHECKED_ADR;
status = ACPIGetNSAddressAsync(

state->PciObject,

GetPciAddressWorker,

(PVOID)state,

&(state->Address),

NULL

);

1: kd> dt GET_ADDRESS_CONTEXT 0x898a8848

ACPI!GET_ADDRESS_CONTEXT

+0x000 PciObject : 0x8996cd78 _NSObj

+0x004 Bus : 0x899c146c ""

+0x008 Slot : 0x899c1470 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER
+0x014 Flags : 8

+0x018 Address : 0

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n0

+0x024 CompletionRoutine : 0xf740ceea void ACPI!GetPciAddressWorker+0

+0x028 CompletionContext : 0x899c1460 Void

1: kd> t

Breakpoint 71 hit

eax=00000000 ebx=00000000 ecx=898a8860 edx=898a8848 esi=898a8848 edi=00000103

eip=f74076b8 esp=f791abac ebp=f791ac24 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> kc

00 ACPI!ACPIGet

01 ACPI!GetPciAddressWorker

02 ACPI!GetPciAddress

03 ACPI!GetPciAddressWorker

04 ACPI!ACPIGetWorkerForInteger

05 ACPI!AsyncCallBack

06 ACPI!RunContext

07 ACPI!DispatchCtxtQueue

08 ACPI!StartTimeSlicePassive

09 ACPI!ACPIWorker

0a nt!PspSystemThreadStartup

0b nt!KiThreadStartup

1: kd> dv
Target = 0x8996cd78

ObjectID = 0x5244415f

Flags = 0x48040402

SimpleArgument = 0x00000000

SimpleArgumentSize = 0

CallBackRoutine = 0xf740ceea

CallBackContext = 0x898a8848

Buffer = 0x898a8860

BufferSize = 0x00000000

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> r

eax=00000000 ebx=00000000 ecx=898a8860 edx=898a8848 esi=898a8848 edi=00000103

eip=f74076b8 esp=f791abac ebp=f791ac24 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 f791abac

f791abac 5e cf 40 f7 78 cd 96 89-5f 41 44 52 02 04 04 48 ^.@.x..._ADR...H

异步得到P2P0的_ADR

参考:

p2p0 110000 "PCI\VEN_15AD&DEV_0790&SUBSYS_00000000&REV_02\3&61aaa01&0&88" 2

p2p1 120000

p2p2 130000

p2p3 140000

Device (PE40) 150000 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&A8" 3

Device (PE50) 160000 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B0" b

Device (PE60) 170000 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B8" 13

Device (PE70) 180000 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&C0" 1b

Device (PE80) 190000

Device (PE90) 1A0000

Device (PEA0) 1B0000

Device (PEB0) 1C0000

Device (PEC0) 1D0000

Device (PED0) 1E0000

Device (PEE0) 1F0000

14-4+1=11

Device (PE41) 0x150001 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&A9" 4

Device (PE42) 0x150002 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&AA" 5

Device (PE43) 0x150003 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&AB" 6

Device (PE44) 0x150004 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&AC" 7

Device (PE45) 0x150005 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&AD" 8

Device (PE46) 0x150006 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&AE" 9

Device (PE47) 0x150007 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&AF" a

4 7

Device (PE51) 0x160001 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B1" c

Device (PE52) 0x160002 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B2" d

Device (PE53) 0x160003 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B3" e

Device (PE54) 0x160004 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B4" f

Device (PE55) 0x160005 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B5" 10

Device (PE56) 0x160006 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B6" 11

Device (PE57) 0x160007 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B7" 12

5 7

Device (PE61) 0x170001 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&B9" 14

Device (PE62) 0x170002 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&BA" 15

Device (PE63) 0x170003 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&BB" 16

Device (PE64) 0x170004 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&BC" 17

Device (PE65) 0x170005 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&BD" 18

Device (PE66) 0x170006 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&BE" 19

Device (PE67) 0x170007 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&BF" 1a

6 7

Device (PE71) 0x180001 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&C1" 1c

Device (PE72) 0x180002 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&C2" 1d

Device (PE73) 0x180003 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&C3" 1e

Device (PE74) 0x180004 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&C4" 1f

Device (PE75) 0x180005 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&C5" 20

Device (PE76) 0x180006 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&C6" 21

Device (PE77) 0x180007 "PCI\VEN_15AD&DEV_07A0&SUBSYS_00000000&REV_01\3&61aaa01&0&C7" 22

第四部分:

1: kd> g

Breakpoint 71 hit

eax=00000000 ebx=00000000 ecx=898a8778 edx=898a8760 esi=898a8760 edi=00000103

eip=f74076b8 esp=f791abac ebp=f791ac24 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> dv

Target = 0x8996cd78

1: kd> g

Breakpoint 71 hit

eax=00000000 ebx=00000000 ecx=898a8778 edx=898a8760 esi=898a8760 edi=00000103

eip=f74076b8 esp=f791abac ebp=f791ac24 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 2

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 3

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 5

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 10

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 15

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 20

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 25

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 26

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 27

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 28

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 29

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 30

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 31

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp 32

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> dv

Target = 0x89945d1c

ObjectID = 0x5244415f

1: kd> db 0x89945d1c

89945d1c 1c 0f 96 89 ec 65 94 89-ac ff 9a 89 60 5d 94 89 .....e......`]..

89945d2c 50 45 34 30 30 f3 9a 89-d8 5c 94 89 00 00 06 00 PE400....\......

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> dv

Target = 0x899465ec

ObjectID = 0x5244415f

1: kd> db 0x899465ec

899465ec 1c 5d 94 89 b4 6e 94 89-ac ff 9a 89 30 66 94 89 .]...n......0f..

899465fc 50 45 35 30 30 f3 9a 89-a8 65 94 89 00 00 06 00 PE500....e......

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> dv

Target = 0x89946eb4

ObjectID = 0x5244415f

1: kd> db 0x89946eb4

89946eb4 ec 65 94 89 7c 77 94 89-ac ff 9a 89 f8 6e 94 89 .e..|w.......n..

89946ec4 50 45 36 30 30 f3 9a 89-70 6e 94 89 00 00 06 00 PE600...pn......

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> dv

Target = 0x8994777c

ObjectID = 0x5244415f

1: kd> db 0x8994777c

8994777c b4 6e 94 89 44 80 94 89-ac ff 9a 89 c0 77 94 89 .n..D........w..

8994778c 50 45 37 30 30 f3 9a 89-38 77 94 89 00 00 06 00 PE700...8w......

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> dv

Target = 0x8994bdbc

ObjectID = 0x5244415f

1: kd> db 0x8994bdbc

8994bdbc f4 b4 94 89 84 c6 94 89-ac ff 9a 89 00 be 94 89 ................

8994bdcc 50 45 34 31 30 f3 9a 89-78 bd 94 89 00 00 06 00 PE410...x.......

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> dv

Target = 0x8994f26c

ObjectID = 0x5244415f

1: kd> db 0x8994f26c

8994f26c a4 e9 94 89 34 fb 94 89-ac ff 9a 89 b0 f2 94 89 ....4...........

8994f27c 50 45 34 37 30 f3 9a 89-28 f2 94 89 00 00 06 00 PE470...(.......

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> dv

Target = 0x8992b00c

ObjectID = 0x5244415f

Flags = 0x48040402

SimpleArgument = 0x00000000

SimpleArgumentSize = 0

CallBackRoutine = 0xf740ceea

CallBackContext = 0x89810480

Buffer = 0x89810498

BufferSize = 0x00000000

completionRoutine = 0xf74076b9

status = 0n1208222722

argument = struct _ObjData

argumentPtr = 0x89810480

acpiObject = 0x8992b00c

deviceExtension = 0xf791ac24

async = 0x00 ''

argumentCount = 0x103

1: kd> db 0x8992b00c

8992b00c 44 a7 92 89 d4 b8 92 89-ac ff 9a 89 50 b0 92 89 D...........P...

8992b01c 50 45 35 37 30 f3 9a 89-c8 af 92 89 00 00 06 00 PE570...........

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> dv

Target = 0x8992ed84

ObjectID = 0x5244415f

Flags = 0x48040402

SimpleArgument = 0x00000000

SimpleArgumentSize = 0

CallBackRoutine = 0xf740ceea

CallBackContext = 0x898102f8

Buffer = 0x89810310

BufferSize = 0x00000000

completionRoutine = 0xf74076b9

status = 0n1208222722

argument = struct _ObjData

argumentPtr = 0x898102f8

acpiObject = 0x8992ed84

deviceExtension = 0xf791ac24

async = 0x00 ''

argumentCount = 0x103

1: kd> db 0x8992ed84

8992ed84 bc e4 92 89 4c f6 92 89-ac ff 9a 89 c8 ed 92 89 ....L...........

8992ed94 50 45 36 37 30 f3 9a 89-40 ed 92 89 00 00 06 00 PE670...@.......

8992eda4 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

8992edb4 40 82 92 89 00 00 00 00-48 4e 53 4f 44 00 00 00 @.......HNSOD...

8992edc4 00 a0 92 89 28 f2 92 89-6c ee 92 89 84 ed 92 89 ....(...l.......

8992edd4 00 00 00 00 5f 41 44 52-30 f3 9a 89 84 ed 92 89 ...._ADR0.......

8992ede4 00 00 01 00 00 00 00 00-07 00 17 00 00 00 00 00 ................

8992edf4 00 00 00 00 00 00 00 00-00 00 00 00 48 50 4b 47 ............HPKG

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> g

Breakpoint 71 hit

ACPI!ACPIGet:

f74076b8 55 push ebp

1: kd> dv

Target = 0x89932afc

ObjectID = 0x5244415f

Flags = 0x48040402

SimpleArgument = 0x00000000

SimpleArgumentSize = 0

CallBackRoutine = 0xf740ceea

CallBackContext = 0x89810170

Buffer = 0x89810188

BufferSize = 0x00000000

completionRoutine = 0xf74076b9

status = 0n1208222722

argument = struct _ObjData

argumentPtr = 0x89810170

第五部分:32+4*8个_CTXT。得到_ADR地址

1: kd> x acpi!greadyqueue

f743a928 ACPI!gReadyQueue = struct _ctxtq

1: kd> dx -r1 (*((ACPI!_ctxtq *)0xf743a928))

(*((ACPI!_ctxtq *)0xf743a928)) [Type: _ctxtq]

+0x000\] dwfCtxtQ : 0x0 \[Type: unsigned long

+0x004\] pkthCurrent : 0x89981ca0 \[Type: _KTHREAD \*

+0x008\] pctxtCurrent : 0x89857000 \[Type: _ctxt \*

+0x00c\] plistCtxtQ : 0x8985a010 \[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 *)0x8985a010)

((ACPI!_List *)0x8985a010) : 0x8985a010 [Type: _List *] 1

+0x000\] plistPrev : 0x89855010 \[Type: _List \*

+0x004\] plistNext : 0x8985c010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89855010)

((ACPI!_List *)0x89855010) : 0x89855010 [Type: _List *]

+0x000\] plistPrev : 0x89853010 \[Type: _List \*

+0x004\] plistNext : 0x8985a010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89853010)

((ACPI!_List *)0x89853010) : 0x89853010 [Type: _List *]

+0x000\] plistPrev : 0x89851010 \[Type: _List \*

+0x004\] plistNext : 0x89855010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89851010)

((ACPI!_List *)0x89851010) : 0x89851010 [Type: _List *]

+0x000\] plistPrev : 0x8984f010 \[Type: _List \*

+0x004\] plistNext : 0x89853010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8984f010)

((ACPI!_List *)0x8984f010) : 0x8984f010 [Type: _List *] 5

+0x000\] plistPrev : 0x8984d010 \[Type: _List \*

+0x004\] plistNext : 0x89851010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8984d010)

((ACPI!_List *)0x8984d010) : 0x8984d010 [Type: _List *]

+0x000\] plistPrev : 0x8984b010 \[Type: _List \*

+0x004\] plistNext : 0x8984f010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8984b010)

((ACPI!_List *)0x8984b010) : 0x8984b010 [Type: _List *]

+0x000\] plistPrev : 0x89849010 \[Type: _List \*

+0x004\] plistNext : 0x8984d010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89849010)

((ACPI!_List *)0x89849010) : 0x89849010 [Type: _List *]

+0x000\] plistPrev : 0x89847010 \[Type: _List \*

+0x004\] plistNext : 0x8984b010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89847010)

((ACPI!_List *)0x89847010) : 0x89847010 [Type: _List *]

+0x000\] plistPrev : 0x89845010 \[Type: _List \*

+0x004\] plistNext : 0x89849010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89845010)

((ACPI!_List *)0x89845010) : 0x89845010 [Type: _List *] 10

+0x000\] plistPrev : 0x89843010 \[Type: _List \*

+0x004\] plistNext : 0x89847010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89843010)

((ACPI!_List *)0x89843010) : 0x89843010 [Type: _List *]

+0x000\] plistPrev : 0x89841010 \[Type: _List \*

+0x004\] plistNext : 0x89845010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89841010)

((ACPI!_List *)0x89841010) : 0x89841010 [Type: _List *]

+0x000\] plistPrev : 0x8983f010 \[Type: _List \*

+0x004\] plistNext : 0x89843010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8983f010)

((ACPI!_List *)0x8983f010) : 0x8983f010 [Type: _List *]

+0x000\] plistPrev : 0x8983d010 \[Type: _List \*

+0x004\] plistNext : 0x89841010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8983d010)

((ACPI!_List *)0x8983d010) : 0x8983d010 [Type: _List *]

+0x000\] plistPrev : 0x8983b010 \[Type: _List \*

+0x004\] plistNext : 0x8983f010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8983b010)

((ACPI!_List *)0x8983b010) : 0x8983b010 [Type: _List *] 15

+0x000\] plistPrev : 0x89839010 \[Type: _List \*

+0x004\] plistNext : 0x8983d010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89839010)

((ACPI!_List *)0x89839010) : 0x89839010 [Type: _List *]

+0x000\] plistPrev : 0x89837010 \[Type: _List \*

+0x004\] plistNext : 0x8983b010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89837010)

((ACPI!_List *)0x89837010) : 0x89837010 [Type: _List *]

+0x000\] plistPrev : 0x89835010 \[Type: _List \*

+0x004\] plistNext : 0x89839010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89835010)

((ACPI!_List *)0x89835010) : 0x89835010 [Type: _List *]

+0x000\] plistPrev : 0x89833010 \[Type: _List \*

+0x004\] plistNext : 0x89837010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89833010)

((ACPI!_List *)0x89833010) : 0x89833010 [Type: _List *]

+0x000\] plistPrev : 0x89831010 \[Type: _List \*

+0x004\] plistNext : 0x89835010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89831010)

((ACPI!_List *)0x89831010) : 0x89831010 [Type: _List *] 20

+0x000\] plistPrev : 0x8982f010 \[Type: _List \*

+0x004\] plistNext : 0x89833010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8982f010)

((ACPI!_List *)0x8982f010) : 0x8982f010 [Type: _List *]

+0x000\] plistPrev : 0x8982d010 \[Type: _List \*

+0x004\] plistNext : 0x89831010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8982d010)

((ACPI!_List *)0x8982d010) : 0x8982d010 [Type: _List *]

+0x000\] plistPrev : 0x8982b010 \[Type: _List \*

+0x004\] plistNext : 0x8982f010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8982b010)

((ACPI!_List *)0x8982b010) : 0x8982b010 [Type: _List *]

+0x000\] plistPrev : 0x89829010 \[Type: _List \*

+0x004\] plistNext : 0x8982d010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89829010)

((ACPI!_List *)0x89829010) : 0x89829010 [Type: _List *]

+0x000\] plistPrev : 0x89827010 \[Type: _List \*

+0x004\] plistNext : 0x8982b010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89827010)

((ACPI!_List *)0x89827010) : 0x89827010 [Type: _List *] 25

+0x000\] plistPrev : 0x89825010 \[Type: _List \*

+0x004\] plistNext : 0x89829010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89825010)

((ACPI!_List *)0x89825010) : 0x89825010 [Type: _List *]

+0x000\] plistPrev : 0x89823010 \[Type: _List \*

+0x004\] plistNext : 0x89827010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89823010)

((ACPI!_List *)0x89823010) : 0x89823010 [Type: _List *]

+0x000\] plistPrev : 0x89821010 \[Type: _List \*

+0x004\] plistNext : 0x89825010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89821010)

((ACPI!_List *)0x89821010) : 0x89821010 [Type: _List *]

+0x000\] plistPrev : 0x8981f010 \[Type: _List \*

+0x004\] plistNext : 0x89823010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8981f010)

((ACPI!_List *)0x8981f010) : 0x8981f010 [Type: _List *]

+0x000\] plistPrev : 0x898f5010 \[Type: _List \*

+0x004\] plistNext : 0x89821010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898f5010)

((ACPI!_List *)0x898f5010) : 0x898f5010 [Type: _List *] 30

+0x000\] plistPrev : 0x898f3010 \[Type: _List \*

+0x004\] plistNext : 0x8981f010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898f3010)

((ACPI!_List *)0x898f3010) : 0x898f3010 [Type: _List *]

+0x000\] plistPrev : 0x898f1010 \[Type: _List \*

+0x004\] plistNext : 0x898f5010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898f1010)

((ACPI!_List *)0x898f1010) : 0x898f1010 [Type: _List *]

+0x000\] plistPrev : 0x898e7010 \[Type: _List \*

+0x004\] plistNext : 0x898f3010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898e7010)

((ACPI!_List *)0x898e7010) : 0x898e7010 [Type: _List *]

+0x000\] plistPrev : 0x898e5010 \[Type: _List \*

+0x004\] plistNext : 0x898f1010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898e5010)

((ACPI!_List *)0x898e5010) : 0x898e5010 [Type: _List *]

+0x000\] plistPrev : 0x898e3010 \[Type: _List \*

+0x004\] plistNext : 0x898e7010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898e3010)

((ACPI!_List *)0x898e3010) : 0x898e3010 [Type: _List *] 35

+0x000\] plistPrev : 0x898e1010 \[Type: _List \*

+0x004\] plistNext : 0x898e5010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898e1010)

((ACPI!_List *)0x898e1010) : 0x898e1010 [Type: _List *]

+0x000\] plistPrev : 0x898df010 \[Type: _List \*

+0x004\] plistNext : 0x898e3010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898df010)

((ACPI!_List *)0x898df010) : 0x898df010 [Type: _List *]

+0x000\] plistPrev : 0x898dd010 \[Type: _List \*

+0x004\] plistNext : 0x898e1010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898dd010)

((ACPI!_List *)0x898dd010) : 0x898dd010 [Type: _List *]

+0x000\] plistPrev : 0x898db010 \[Type: _List \*

+0x004\] plistNext : 0x898df010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898db010)

((ACPI!_List *)0x898db010) : 0x898db010 [Type: _List *]

+0x000\] plistPrev : 0x898a0010 \[Type: _List \*

+0x004\] plistNext : 0x898dd010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x898a0010)

((ACPI!_List *)0x898a0010) : 0x898a0010 [Type: _List *] 40

+0x000\] plistPrev : 0x8989e010 \[Type: _List \*

+0x004\] plistNext : 0x898db010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8989e010)

((ACPI!_List *)0x8989e010) : 0x8989e010 [Type: _List *]

+0x000\] plistPrev : 0x8989c010 \[Type: _List \*

+0x004\] plistNext : 0x898a0010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8989c010)

((ACPI!_List *)0x8989c010) : 0x8989c010 [Type: _List *]

+0x000\] plistPrev : 0x8989a010 \[Type: _List \*

+0x004\] plistNext : 0x8989e010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8989a010)

((ACPI!_List *)0x8989a010) : 0x8989a010 [Type: _List *]

+0x000\] plistPrev : 0x89898010 \[Type: _List \*

+0x004\] plistNext : 0x8989c010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89898010)

((ACPI!_List *)0x89898010) : 0x89898010 [Type: _List *]

+0x000\] plistPrev : 0x89896010 \[Type: _List \*

+0x004\] plistNext : 0x8989a010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89896010)

((ACPI!_List *)0x89896010) : 0x89896010 [Type: _List *] 45

+0x000\] plistPrev : 0x89894010 \[Type: _List \*

+0x004\] plistNext : 0x89898010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89894010)

((ACPI!_List *)0x89894010) : 0x89894010 [Type: _List *]

+0x000\] plistPrev : 0x89892010 \[Type: _List \*

+0x004\] plistNext : 0x89896010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89892010)

((ACPI!_List *)0x89892010) : 0x89892010 [Type: _List *]

+0x000\] plistPrev : 0x89890010 \[Type: _List \*

+0x004\] plistNext : 0x89894010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89890010)

((ACPI!_List *)0x89890010) : 0x89890010 [Type: _List *]

+0x000\] plistPrev : 0x8988e010 \[Type: _List \*

+0x004\] plistNext : 0x89892010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8988e010)

((ACPI!_List *)0x8988e010) : 0x8988e010 [Type: _List *]

+0x000\] plistPrev : 0x8988c010 \[Type: _List \*

+0x004\] plistNext : 0x89890010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8988c010)

((ACPI!_List *)0x8988c010) : 0x8988c010 [Type: _List *] 50

+0x000\] plistPrev : 0x8988a010 \[Type: _List \*

+0x004\] plistNext : 0x8988e010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8988a010)

((ACPI!_List *)0x8988a010) : 0x8988a010 [Type: _List *]

+0x000\] plistPrev : 0x89888010 \[Type: _List \*

+0x004\] plistNext : 0x8988c010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89888010)

((ACPI!_List *)0x89888010) : 0x89888010 [Type: _List *]

+0x000\] plistPrev : 0x89886010 \[Type: _List \*

+0x004\] plistNext : 0x8988a010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89886010)

((ACPI!_List *)0x89886010) : 0x89886010 [Type: _List *]

+0x000\] plistPrev : 0x89884010 \[Type: _List \*

+0x004\] plistNext : 0x89888010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89884010)

((ACPI!_List *)0x89884010) : 0x89884010 [Type: _List *]

+0x000\] plistPrev : 0x89882010 \[Type: _List \*

+0x004\] plistNext : 0x89886010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89882010)

((ACPI!_List *)0x89882010) : 0x89882010 [Type: _List *] 55

+0x000\] plistPrev : 0x89880010 \[Type: _List \*

+0x004\] plistNext : 0x89884010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89880010)

((ACPI!_List *)0x89880010) : 0x89880010 [Type: _List *]

+0x000\] plistPrev : 0x8987e010 \[Type: _List \*

+0x004\] plistNext : 0x89882010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8987e010)

((ACPI!_List *)0x8987e010) : 0x8987e010 [Type: _List *]

+0x000\] plistPrev : 0x8987c010 \[Type: _List \*

+0x004\] plistNext : 0x89880010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8987c010)

((ACPI!_List *)0x8987c010) : 0x8987c010 [Type: _List *]

+0x000\] plistPrev : 0x8987a010 \[Type: _List \*

+0x004\] plistNext : 0x8987e010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8987a010)

((ACPI!_List *)0x8987a010) : 0x8987a010 [Type: _List *]

+0x000\] plistPrev : 0x89878010 \[Type: _List \*

+0x004\] plistNext : 0x8987c010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89878010)

((ACPI!_List *)0x89878010) : 0x89878010 [Type: _List *] 60

+0x000\] plistPrev : 0x89876010 \[Type: _List \*

+0x004\] plistNext : 0x8987a010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89876010)

((ACPI!_List *)0x89876010) : 0x89876010 [Type: _List *]

+0x000\] plistPrev : 0x89781010 \[Type: _List \*

+0x004\] plistNext : 0x89878010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x89781010)

((ACPI!_List *)0x89781010) : 0x89781010 [Type: _List *]

+0x000\] plistPrev : 0x8985e010 \[Type: _List \*

+0x004\] plistNext : 0x89876010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8985e010)

((ACPI!_List *)0x8985e010) : 0x8985e010 [Type: _List *]

+0x000\] plistPrev : 0x8985c010 \[Type: _List \*

+0x004\] plistNext : 0x89781010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8985c010)

((ACPI!_List *)0x8985c010) : 0x8985c010 [Type: _List *] 64

+0x000\] plistPrev : 0x8985a010 \[Type: _List \*

+0x004\] plistNext : 0x8985e010 \[Type: _List \*

1: kd> dx -r1 ((ACPI!_List *)0x8985a010)

((ACPI!_List *)0x8985a010) : 0x8985a010 [Type: _List *]

+0x000\] plistPrev : 0x89855010 \[Type: _List \*

+0x004\] plistNext : 0x8985c010 \[Type: _List \*