为了得到子节点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 \*