ACPI!GetPciAddressWorker函数处理设备P2P0的一个例子

ACPI!GetPciAddressWorker函数处理设备P2P0的一个例子

0: kd> g

Breakpoint 11 hit

eax=f740ceea ebx=00000000 ecx=00000001 edx=00002707 esi=8987c0e0 edi=8987c10c

eip=f740ceea esp=f791acb4 ebp=f791acd8 iopl=0 nv up ei ng nz na po nc

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

ACPI!GetPciAddressWorker:

f740ceea 55 push ebp

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

0: kd> dv

AcpiObject = 0x89ddedf0

Status = 0n0

Result = 0x00000000

Context = 0x89906c20

buffer = unsigned char [64] ""

0: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_NSObj *)0x89ddedf0)

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

+0x000\] list \[Type: _List

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

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

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

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

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

+0x01c\] ObjData \[Type: _ObjData

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

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

0: kd> db 0x89ddedf0

89ddedf0 b0 6b de 89 b4 ee dd 89-78 ed dd 89 00 00 00 00 .k......x.......

89ddee00 5f 41 44 52 30 33 da 89-78 ed dd 89 00 00 01 00 _ADR03..x.......

89ddee10 00 00 00 00 00 00 11 00-00 00 00 00 00 00 00 00 ................

89ddee20 00 00 00 00 00 00 00 00-48 46 44 55 20 00 00 00 ........HFDU ...

89ddee30 00 b0 dd 89 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...

89ddee40 03 00 00 00 5c f1 dd 89-48 50 4b 47 60 00 00 00 ....\...HPKG`...

89ddee50 00 b0 dd 89 04 00 00 00-00 00 01 00 00 00 00 00 ................

89ddee60 08 00 00 00 00 00 00 00-00 00 00 00 00 00 01 00 ................

0: kd> db 0x89dded78

89dded78 38 ec dd 89 88 6f de 89-ac 3f da 89 f0 ed dd 89 8....o...?......

89dded88 50 32 50 30 30 33 da 89-38 ec dd 89 00 00 06 00 P2P003..8.......

89dded98 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89ddeda8 f0 e9 d9 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...

89ddedb8 00 b0 dd 89 00 00 00 00-04 00 00 00 02 00 00 00 ................

89ddedc8 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89ddedd8 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

89ddede8 44 00 00 00 00 b0 dd 89-b0 6b de 89 b4 ee dd 89 D........k......

0: kd> p

eax=e71d46b8 ebx=00000000 ecx=00000001 edx=00002707 esi=8987c0e0 edi=8987c10c

eip=f740cef7 esp=f791ac64 ebp=f791acb0 iopl=0 nv up ei ng nz ac pe nc

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

ACPI!GetPciAddressWorker+0xd:

f740cef7 8b7514 mov esi,dword ptr [ebp+14h] ss:0010:f791acc4=89906c20

0: kd> p

eax=e71d46b8 ebx=00000000 ecx=00000001 edx=00002707 esi=89906c20 edi=8987c10c

eip=f740cf18 esp=f791ac60 ebp=f791acb0 iopl=0 nv up ei ng nz na po nc

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

ACPI!GetPciAddressWorker+0x2e:

f740cf18 8b5d0c mov ebx,dword ptr [ebp+0Ch] ss:0010:f791acbc=00000000

0: kd> p

eax=e71d46b8 ebx=00000000 ecx=00000001 edx=00002707 esi=89906c20 edi=8987c10c

eip=f740cf1b esp=f791ac60 ebp=f791acb0 iopl=0 nv up ei ng nz na po nc

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

ACPI!GetPciAddressWorker+0x31:

f740cf1b 8d4e20 lea ecx,[esi+20h]

0: kd> p

eax=00000001 ebx=00000000 ecx=89906c40 edx=00002707 esi=89906c20 edi=8987c10c

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

f740cf24 85db test ebx,ebx

0: kd> p

eax=00000001 ebx=00000000 ecx=89906c40 edx=00002707 esi=89906c20 edi=8987c10c

eip=f740cf2c 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+0x42:

f740cf2c 8b4614 mov eax,dword ptr [esi+14h] ds:0023:89906c34=00000008

0: kd> p

eax=00000008 ebx=00000000 ecx=89906c40 edx=00002707 esi=89906c20 edi=00000103

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

f740cf70 b900010000 mov ecx,100h

0: kd> p

eax=00000008 ebx=00000000 ecx=00000100 edx=00002707 esi=89906c20 edi=00000103

eip=f740cf7a 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+0x90:

f740cf7a 8b5618 mov edx,dword ptr [esi+18h] ds:0023:89906c38=00110000

0: kd> p

eax=899bf540 ebx=00000000 ecx=00000100 edx=00000000 esi=89906c20 edi=00000103

eip=f740cf8d 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+0xa3:

f740cf8d 8b4608 mov eax,dword ptr [esi+8] ds:0023:89906c28=899bf540

0: kd> dv

AcpiObject = 0x89ddedf0

Status = 0n0

Result = 0x00000000

Context = 0x89906c20

buffer = unsigned char [64] ""

0: kd> dt GET_ADDRESS_CONTEXT 0x89906c20

ACPI!GET_ADDRESS_CONTEXT

+0x000 PciObject : 0x89dded78 _NSObj

+0x004 Bus : 0x899bf53c ""

+0x008 Slot : 0x899bf540 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER

+0x014 Flags : 8

+0x018 Address : 0x110000

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n1

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

+0x028 CompletionContext : 0x899bf530 Void

0: kd> dx -id 0,0,ffffffff89dd5240 -r1 ((ACPI!_NSObj *)0x89ddedf0)

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

+0x000\] list \[Type: _List

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

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

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

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

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

+0x01c\] ObjData \[Type: _ObjData

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

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

0: kd> db 0x89dded78

89dded78 38 ec dd 89 88 6f de 89-ac 3f da 89 f0 ed dd 89 8....o...?......

89dded88 50 32 50 30 30 33 da 89-38 ec dd 89 00 00 06 00 P2P003..8.......

89dded98 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89ddeda8 f0 e9 d9 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...

89ddedb8 00 b0 dd 89 00 00 00 00-04 00 00 00 02 00 00 00 ................

89ddedc8 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89ddedd8 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

89ddede8 44 00 00 00 00 b0 dd 89-b0 6b de 89 b4 ee dd 89 D........k......

0: kd> db 0x89ddedf0

89ddedf0 b0 6b de 89 b4 ee dd 89-78 ed dd 89 00 00 00 00 .k......x.......

89ddee00 5f 41 44 52 30 33 da 89-78 ed dd 89 00 00 01 00 _ADR03..x.......

89ddee10 00 00 00 00 00 00 11 00-00 00 00 00 00 00 00 00 ................

89ddee20 00 00 00 00 00 00 00 00-48 46 44 55 20 00 00 00 ........HFDU ...

89ddee30 00 b0 dd 89 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...

89ddee40 03 00 00 00 5c f1 dd 89-48 50 4b 47 60 00 00 00 ....\...HPKG`...

89ddee50 00 b0 dd 89 04 00 00 00-00 00 01 00 00 00 00 00 ................

89ddee60 08 00 00 00 00 00 00 00-00 00 00 00 00 00 01 00 ................

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;

}

0: kd> dt GET_ADDRESS_CONTEXT 0x89906c20

ACPI!GET_ADDRESS_CONTEXT

+0x000 PciObject : 0x89dded78 _NSObj

+0x004 Bus : 0x899bf53c ""

+0x008 Slot : 0x899bf540 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER

+0x014 Flags : 0x108

+0x018 Address : 0x110000

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n1

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

+0x028 CompletionContext : 0x899bf530 Void

0: kd> db 0x899bf540

899bf540 11 00 00 00 28 01 00 00-00 00 00 00 00 00 00 00 ....(...........

0: kd> dt _PCI_SLOT_NUMBER -r

hal!_PCI_SLOT_NUMBER

+0x000 u : __unnamed

+0x000 bits : __unnamed

+0x000 DeviceNumber : Pos 0, 5 Bits

+0x000 FunctionNumber : Pos 5, 3 Bits

+0x000 Reserved : Pos 8, 24 Bits

+0x000 AsULONG : Uint4B

Device (P2P0)
{
Name (_ADR, 0x00110000) // _ADR: Address

Name (_HPP, Package (0x04) // _HPP: Hot Plug Parameters

{

0x08,

0x40,

0x01,

0x00

})

Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake

{

0x03,

0x03

})

Method (BSTA, 1, NotSerialized)

{

Return (PSTA (_STA (), Arg0))

}

Method (BEJ0, 2, NotSerialized)

{

PEJ0 (Arg0, Arg1, _ADR)

}

Method (BDSM, 5, Serialized)

{

Return (PDSM (Arg0, Arg1, Arg2, Arg3, Arg4, _ADR))

}

OperationRegion (REGS, PCI_Config, 0x00, 0x04)

Field (REGS, DWordAcc, NoLock, Preserve)

{

ID, 32

}

Method (_STA, 0, NotSerialized) // _STA: Status

{

Return (And (LEqual (ID, 0x079015AD), 0x0F))

}

Method (OSHP, 0, NotSerialized)

{

PSHP (_ADR)

}

Method (PPHR, 2, NotSerialized)

{

Store (Arg0, Local0)

If (LNot (Local0))

{

Notify (S1F0, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S2F0, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S3F0, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S4F0, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S5F0, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S6F0, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S7F0, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S8F0, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S9F0, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S10F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S11F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S12F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S13F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S14F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S15F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S16F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S17F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S18F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S19F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S20F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S21F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S22F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S23F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S24F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S25F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S26F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S27F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S28F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S29F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S30F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S31F, Arg1)

}

If (LNot (Decrement (Local0)))

{

Notify (S32F, Arg1)

}

}

//

// 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);

}

0: kd> dt GET_ADDRESS_CONTEXT 0x89906c20

ACPI!GET_ADDRESS_CONTEXT

+0x000 PciObject : 0x89dded78 _NSObj

+0x004 Bus : 0x899bf53c ""

+0x008 Slot : 0x899bf540 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER

+0x014 Flags : 0x108

+0x018 Address : 0x110000

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n1

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

+0x028 CompletionContext : 0x899bf530 Void

0: kd> dt _nsobj 0x89dded78

ACPI!_NSObj

+0x000 list : _List

+0x008 pnsParent : 0x89da3fac _NSObj

+0x00c pnsFirstChild : 0x89ddedf0 _NSObj

+0x010 dwNameSeg : 0x30503250

+0x014 hOwner : 0x89da3330 Void

+0x018 pnsOwnedNext : 0x89ddec38 _NSObj

+0x01c ObjData : _ObjData

+0x030 Context : 0x89d9e9f0 Void

+0x034 dwRefCount : 0

0: kd> db 0x89da3fac

89da3fac 4c 3f da 89 ac 80 da 89-f0 30 da 89 24 40 da 89 L?.......0..$@..

89da3fbc 50 43 49 30 30 33 da 89-4c 3f da 89 00 00 06 00 PCI003..L?......

89da3fcc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89da3fdc 70 49 db 89 00 00 00 00-48 4f 52 47 34 00 00 00 pI......HORG4...

89da3fec 00 30 da 89 50 00 00 00-30 00 00 00 02 00 00 00 .0..P...0.......

89da3ffc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89da400c 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

89da401c 44 00 00 00 00 30 da 89-64 d0 d4 89 68 40 da 89 D....0..d...h@..

if (!tempObj) {

0: kd> p

eax=89da4024 ebx=89da3fac ecx=4449485f edx=00000011 esi=89906c20 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

0: kd> dt _nsobj 89da4024

ACPI!_NSObj

+0x000 list : _List

+0x008 pnsParent : 0x89da3fac _NSObj

+0x00c pnsFirstChild : (null)

+0x010 dwNameSeg : 0x4449485f

+0x014 hOwner : 0x89da3330 Void

+0x018 pnsOwnedNext : 0x89da3fac _NSObj

+0x01c ObjData : _ObjData

+0x030 Context : (null)

+0x034 dwRefCount : 0

0: kd> db 0x89da3fac

89da3fac 4c 3f da 89 ac 80 da 89-f0 30 da 89 24 40 da 89 L?.......0..$@..

89da3fbc 50 43 49 30 30 33 da 89-4c 3f da 89 00 00 06 00 PCI003..L?......

89da3fcc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89da3fdc 70 49 db 89 00 00 00 00-48 4f 52 47 34 00 00 00 pI......HORG4...

89da3fec 00 30 da 89 50 00 00 00-30 00 00 00 02 00 00 00 .0..P...0.......

89da3ffc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89da400c 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

89da401c 44 00 00 00 00 30 da 89-64 d0 d4 89 68 40 da 89 D....0..d...h@..

0: kd> db 89da4024

89da4024 64 d0 d4 89 68 40 da 89-ac 3f da 89 00 00 00 00 d...h@...?......

89da4034 5f 48 49 44 30 33 da 89-ac 3f da 89 00 00 01 00 _HID03...?......

89da4044 00 00 00 00 41 d0 0a 03-00 00 00 00 00 00 00 00 ....A...........

89da4054 00 00 00 00 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...

89da4064 00 30 da 89 24 40 da 89-ac 40 da 89 ac 3f da 89 .0..$@...@...?..

89da4074 00 00 00 00 5f 43 49 44-30 33 da 89 24 40 da 89 ...._CID03..$@..

89da4084 00 00 01 00 00 00 00 00-41 d0 0a 08 00 00 00 00 ........A.......

89da4094 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

Device (PCI0)

{

Name (_HID, EisaId ("PNP0A03")) // _HID: Hardware ID

Name (_CID, EisaId ("PNP0A08")) // _CID: Compatible ID

Name (_BBN, 0x00) // _BBN: BIOS Bus Number

0: kd> p

eax=89da40ac ebx=89da3fac ecx=4e42425f edx=00000011 esi=89906c20 edi=00000103

eip=f740d041 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+0x157:

f740d041 85c0 test eax,eax

0: kd> dt _nsobj 89da40ac

ACPI!_NSObj

+0x000 list : _List

+0x008 pnsParent : 0x89da3fac _NSObj

+0x00c pnsFirstChild : (null)

+0x010 dwNameSeg : 0x4e42425f

+0x014 hOwner : 0x89da3330 Void

+0x018 pnsOwnedNext : 0x89da4068 _NSObj

+0x01c ObjData : _ObjData

+0x030 Context : (null)

+0x034 dwRefCount : 0

0: kd> db 89da40ac

89da40ac 68 40 da 89 f0 40 da 89-ac 3f da 89 00 00 00 00 h@...@...?......

89da40bc 5f 42 42 4e 30 33 da 89-68 40 da 89 00 00 01 00 _BBN03..h@......

89da40cc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89da40dc 00 00 00 00 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...

89da40ec 00 30 da 89 ac 40 da 89-90 41 da 89 ac 3f da 89 .0...@...A...?..

89da40fc 00 00 00 00 5f 41 44 52-30 33 da 89 ac 40 da 89 ...._ADR03...@..

89da410c 00 00 01 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

89da411c 00 00 00 00 00 00 00 00-00 00 00 00 48 4f 52 47 ............HORG

//

// This device must be the child of a root PCI bus.

//

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

state->Flags |= PCISUPP_CHECKED_BBN;

status = ACPIGetNSIntegerAsync(

bus,

PACKED_BBN,

GetPciAddressWorker,

(PVOID)state,

&(state->BaseBusNumber), +0x01c BaseBusNumber : 0

NULL

);

0: kd> dt GET_ADDRESS_CONTEXT 0x89906c20

ACPI!GET_ADDRESS_CONTEXT

+0x000 PciObject : 0x89dded78 _NSObj

+0x004 Bus : 0x899bf53c ""

+0x008 Slot : 0x899bf540 _PCI_SLOT_NUMBER

+0x00c ParentBus : 0 ''

+0x010 ParentSlot : _PCI_SLOT_NUMBER

+0x014 Flags : 0x2108

+0x018 Address : 0x110000

+0x01c BaseBusNumber : 0

+0x020 RunCompletion : 0n1

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

+0x028 CompletionContext : 0x899bf530 Void

0: kd> p

eax=00000103 ebx=00000103 ecx=00000103 edx=00002700 esi=89906c20 edi=00000103

eip=f740d07b 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+0x191:

f740d07b 8bc7 mov eax,edi