ACPI!ACPIBuildProcessGenericList函数对节点MBRD的处理得到InstanceID后再得到HID

ACPI!ACPIBuildProcessGenericList函数对节点MBRD的处理得到InstanceID后再得到HID

Device (ISA)

{

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

Device (MBRD)

{

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

Name (_UID, 0x1F) // _UID: Unique ID

Name (RSRC, ResourceTemplate ()

{

。。。。。。

})

Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings

{

CreateWordField (RSRC, \_SB.PCI0.ISA.MBRD._Y0E._MIN, PMMN) // _MIN: Minimum Base Address

CreateWordField (RSRC, \_SB.PCI0.ISA.MBRD._Y0E._MAX, PMMX) // _MAX: Maximum Base Address

And (^^^PWR.PMBA, 0xFFFFFFFE, PMMN)

Store (PMMN, PMMX)

CreateWordField (RSRC, \_SB.PCI0.ISA.MBRD._Y0F._MIN, SMMN) // _MIN: Minimum Base Address

CreateWordField (RSRC, \_SB.PCI0.ISA.MBRD._Y0F._MAX, SMMX) // _MAX: Maximum Base Address

And (^^^PWR.SBBA, 0xFFFFFFFE, SMMN)

Store (SMMN, SMMX)

Return (RSRC)

}

}

DevNode 0x89a30230 for PDO 0x89cb4d18

InstancePath is "ACPI\PNP0C02\1f" InstancePath is "ACPI\PNP0C02\1f"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

参考:

DevNode 0x8999e008 for PDO 0x89c65b18 ====第1个

InstancePath is "ACPI\PNP0C02\4"

State = DeviceNodeInitialized (0x302)

Previous State = DeviceNodeUninitialized (0x301)

Device (EXPL)

{

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

Name (_UID, 0x04) // _UID: Unique ID

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

{

If (CCAP)

{

Return (0x0F)

}

Return (0x00)

}

参考结束:

参考:

Device (DMAR)

{

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

Name (_UID, 0x06) // _UID: Unique ID

参考结束:

1: kd> kc

00 ACPI!ACPIBuildProcessDevicePhaseUid

01 ACPI!ACPIBuildProcessGenericList

02 ACPI!ACPIBuildDeviceDpc

03 nt!KiRetireDpcList

04 nt!KiDispatchInterrupt

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

05 0x0

1: kd> dv

BuildRequest = 0x89984138

nsObject = 0x89984138

1: kd> dx -r1 ((ACPI!_ACPI_BUILD_REQUEST *)0x89984138)

((ACPI!_ACPI_BUILD_REQUEST *)0x89984138) : 0x89984138 [Type: _ACPI_BUILD_REQUEST *]

+0x000\] ListEntry \[Type: _LIST_ENTRY

+0x008\] Signature : 0x5f534750 \[Type: unsigned long

+0x00c\] Flags : 0x1 \[Type: unsigned long

+0x00c\] UFlags \[Type: __unnamed

+0x010\] WorkDone : 0x1 \[Type: unsigned long

+0x014\] CurrentWorkDone : 0x6 \[Type: unsigned long

+0x018\] NextWorkDone : 0x2 \[Type: unsigned long

+0x01c\] BuildContext : 0x899c0920 \[Type: void \*

+0x020\] Status : 0 \[Type: long

+0x024\] CurrentObject : 0x899b2388 \[Type: _NSObj \*

+0x028\] CallBack : 0x0 \[Type: void (\*)(void \*,void \*,long)

+0x02c\] CallBackContext : 0x0 \[Type: void \*

+0x030\] DeviceRequest \[Type: __unnamed

+0x030\] RunRequest \[Type: __unnamed

+0x030\] SynchronizeRequest \[Type: __unnamed

+0x044\] Integer : 0x0 \[Type: unsigned long

+0x044\] String : 0x0 \[Type: unsigned char \*

+0x044\] TargetListEntry : 0x0 \[Type: _LIST_ENTRY \*

1: kd> db 0x899b2388

899b2388 44 23 9b 89 ac 24 9b 89-00 23 9b 89 00 00 00 00 D#...$...#......

899b2398 5f 55 49 44 30 f3 9a 89-44 23 9b 89 00 00 01 00 _UID0...D#......

899b23a8 00 00 00 00 1f 00 00 00-00 00 00 00 00 00 00 00 ................

899b23b8 00 00 00 00 00 00 00 00-48 46 44 55 20 00 00 00 ........HFDU ...

899b23c8 00 f0 9a 89 01 00 00 00-00 00 00 00 08 00 00 00 ................

899b23d8 01 00 00 00 f4 3a 9b 89-48 42 55 46 c0 00 00 00 .....:..HBUF....

899b23e8 00 f0 9a 89 47 01 10 00-10 00 01 10 47 01 24 00 ....G.......G.$.

899b23f8 24 00 01 02 47 01 28 00-28 00 01 02 47 01 2c 00 $...G.(.(...G.,.

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

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

+0x000\] list \[Type: _List

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

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

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

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

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

+0x01c\] ObjData \[Type: _ObjData

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

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

1: kd> db 0x899b2300

899b2300 bc 22 9b 89 c0 25 9b 89-78 22 9b 89 44 23 9b 89 ."...%..x"..D#..

899b2310 4d 42 52 44 30 f3 9a 89-bc 22 9b 89 00 00 06 00 MBRD0...."......

1: kd> dv

BuildRequest = 0x89984138

nsObject = 0x89984138

1: kd> dx -r1 ((ACPI!_ACPI_BUILD_REQUEST *)0x89984138)

((ACPI!_ACPI_BUILD_REQUEST *)0x89984138) : 0x89984138 [Type: _ACPI_BUILD_REQUEST *]

+0x000\] ListEntry \[Type: _LIST_ENTRY

+0x008\] Signature : 0x5f534750 \[Type: unsigned long

+0x00c\] Flags : 0x1 \[Type: unsigned long

+0x00c\] UFlags \[Type: __unnamed

+0x010\] WorkDone : 0x1 \[Type: unsigned long

+0x014\] CurrentWorkDone : 0x6 \[Type: unsigned long

+0x018\] NextWorkDone : 0x2 \[Type: unsigned long

+0x01c\] BuildContext : 0x899c0920 \[Type: void \*

+0x020\] Status : 0 \[Type: long

+0x024\] CurrentObject : 0x899b2388 \[Type: _NSObj \*

+0x028\] CallBack : 0x0 \[Type: void (\*)(void \*,void \*,long)

+0x02c\] CallBackContext : 0x0 \[Type: void \*

+0x030\] DeviceRequest \[Type: __unnamed

+0x030\] RunRequest \[Type: __unnamed

+0x030\] SynchronizeRequest \[Type: __unnamed

+0x044\] Integer : 0x0 \[Type: unsigned long

+0x044\] String : 0x0 \[Type: unsigned char \*

+0x044\] TargetListEntry : 0x0 \[Type: _LIST_ENTRY \*

1: kd> dt acpi!_DEVICE_EXTENSION 0x899c0920

+0x000 Flags : 0x00400000`00000008

+0x000 UFlags : __unnamed

+0x008 Signature : 0x5f534750

+0x00c DebugFlags : 0

+0x010 DispatchTable : (null)

+0x014 WorkContext : WORK_QUEUE_CONTEXT

+0x014 Fdo : _FDO_DEVICE_EXTENSION

+0x014 Filter : _FILTER_DEVICE_EXTENSION

+0x014 Pdo : _PDO_DEVICE_EXTENSION

+0x058 WorkQueue : EXTENSION_WORKER

+0x058 Button : BUTTON_EXTENSION

+0x058 Thermal : THERMAL_EXTENSION

+0x058 LinkNode : LINK_NODE_EXTENSION

+0x058 Dock : DOCK_EXTENSION

+0x058 Processor : _PROCESSOR_DEVICE_EXTENSION

+0x088 DeviceState : 0 ( Stopped )

+0x08c PreviousState : 0 ( Stopped )

+0x090 PowerInfo : _ACPI_POWER_INFO

+0x10c DeviceID : (null)

+0x10c Address : 0

+0x110 InstanceID : 0x899c1228 "1f"

+0x114 ResourceList : (null)

+0x118 PnpResourceList : (null)

+0x11c OutstandingIrpCount : 0n1

+0x120 ReferenceCount : 0n3

+0x124 HibernatePathCount : 0n0

+0x128 RemoveEvent : (null)

+0x12c AcpiObject : 0x899b2300 _NSObj

+0x130 DeviceObject : (null)

+0x134 TargetDeviceObject : (null)

+0x138 PhysicalDeviceObject : (null)

+0x13c ParentExtension : 0x899c0a88 _DEVICE_EXTENSION

+0x140 ChildDeviceList : _LIST_ENTRY [ 0x899c0a60 - 0x899c0a60 ]

+0x148 SiblingDeviceList : _LIST_ENTRY [ 0x899c0900 - 0x899c0bc8 ]

+0x150 EjectDeviceHead : _LIST_ENTRY [ 0x899c0a70 - 0x899c0a70 ]

+0x158 EjectDeviceList : _LIST_ENTRY [ 0x899c0a78 - 0x899c0a78 ]

NTSTATUS

ACPIBuildProcessDevicePhaseAdrOrHid(

IN PACPI_BUILD_REQUEST BuildRequest

)

{

nsObject = ACPIAmliGetNamedChild(

deviceExtension->AcpiObject,

PACKED_HID

);

if (nsObject == NULL) {

} else {

//

// Remember which name space object we are evaluating

//

BuildRequest->CurrentObject = nsObject;

//

// When we go down this path, we actually want to build the UID before

// the HID because that makes deciding wether to run the CID much easier

//

nsObject = ACPIAmliGetNamedChild(

deviceExtension->AcpiObject,

PACKED_UID

);

if (nsObject != NULL) {

//

// If we think there is an UID, then the correct next stage is

// to postprocess the UID. The reason that

//

BuildRequest->NextWorkDone = WORK_DONE_UID;

//

// Remember which name space object we are evaluating

//

BuildRequest->CurrentObject = nsObject;

//

// Get the Instance ID

//

status = ACPIGetInstanceIDAsync(

deviceExtension,

ACPIBuildCompleteMustSucceed,

BuildRequest,

&(deviceExtension->InstanceID), deviceExtension->InstanceID="1f"

NULL

);

} else {

1: kd> kc

00 ACPI!ACPIBuildProcessDevicePhaseUid

01 ACPI!ACPIBuildProcessGenericList

02 ACPI!ACPIBuildDeviceDpc

03 nt!KiRetireDpcList

04 nt!KiDispatchInterrupt

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

05 0x0

//

// Remember that we have an UID

//

ACPIInternalUpdateFlags(

&(deviceExtension->Flags),

DEV_PROP_UID,

FALSE

);

#define DEV_PROP_ADDRESS 0x00001000 00000000

#define DEV_PROP_HID 0x00002000 00000000

#define DEV_PROP_UID 0x00004000 00000000

//

// Lets see if there is a _HID to run

//

nsObject = ACPIAmliGetNamedChild(

deviceExtension->AcpiObject,

PACKED_HID

); =eax=899b2344

if (nsObject != NULL) {

1: kd> p

eax=899b2344 ebx=89984138 ecx=4449485f edx=00400000 esi=899c0920 edi=4449485f

eip=f73fb7cf esp=f78aef54 ebp=f78aef60 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!ACPIBuildProcessDevicePhaseUid+0x2f:

f73fb7cf 33c0 xor eax,eax

1: kd> db 899b2344

899b2344 f0 24 9b 89 88 23 9b 89-00 23 9b 89 00 00 00 00 .$...#...#......

899b2354 5f 48 49 44 30 f3 9a 89-00 23 9b 89 00 00 01 00 _HID0....#......

1: kd> dt nsobj 899b2344

ACPI!NSOBJ

+0x000 list : _List

+0x008 pnsParent : 0x899b2300 _NSObj

+0x00c pnsFirstChild : (null)

+0x010 dwNameSeg : 0x4449485f

+0x014 hOwner : 0x899af330 Void

+0x018 pnsOwnedNext : 0x899b2300 _NSObj

+0x01c ObjData : _ObjData

+0x030 Context : (null)

+0x034 dwRefCount : 0

1: kd> db 0x899b2300

899b2300 bc 22 9b 89 c0 25 9b 89-78 22 9b 89 44 23 9b 89 ."...%..x"..D#..

899b2310 4d 42 52 44 30 f3 9a 89-bc 22 9b 89 00 00 06 00 MBRD0...."......

//

// The next phase is to post process the _HID

//

BuildRequest->NextWorkDone = WORK_DONE_HID;

//

// Get the Device ID

//

status = ACPIGetDeviceIDAsync(

deviceExtension,

ACPIBuildCompleteMustSucceed,

BuildRequest,

&(deviceExtension->DeviceID),

NULL

);

#define WORK_DONE_HID WORK_DONE_STEP_2

typedef enum _WORK_DONE {

WORK_DONE_COMPLETE = 0,

WORK_DONE_PENDING,

WORK_DONE_FAILURE,

WORK_DONE_STEP_0,

WORK_DONE_STEP_1,

WORK_DONE_STEP_2,

1: kd> dds 0xf7438008

f7438008 f73fb840 ACPI!ACPIBuildProcessGenericComplete [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c @ 4654]

f743800c 00000000

f7438010 f73fce98 ACPI!ACPIBuildProcessDeviceFailure [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c @ 2507]

f7438014 f73fb118 ACPI!ACPIBuildProcessDevicePhaseAdrOrHid [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c @ 2844]

f7438018 f73fb09e ACPI!ACPIBuildProcessDevicePhaseAdr [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c @ 2754]

f743801c f73fb40c ACPI!ACPIBuildProcessDevicePhaseHid [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c @ 3434]

1: kd> kc

00 ACPI!ACPIGet

01 ACPI!ACPIBuildProcessDevicePhaseUid

02 ACPI!ACPIBuildProcessGenericList

03 ACPI!ACPIBuildDeviceDpc

04 nt!KiRetireDpcList

05 nt!KiDispatchInterrupt

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

06 0x0

1: kd> r

eax=00000000 ebx=89984138 ecx=899c0a2c edx=00400000 esi=899c0920 edi=4449485f

eip=f74076b8 esp=f78aef2c ebp=f78aef60 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!ACPIGet:

f74076b8 55 push ebp

1: kd> db f78aef2c

f78aef2c f9 b7 3f f7 20 09 9c 89-5f 48 49 44 26 00 08 50 ..?. ..._HID&..P

//

// Go out and see if the requested object is present

//

acpiObject = ACPIAmliGetNamedChild(

acpiObject,

ObjectID

);eax=899b2344

1: kd> g

Breakpoint 29 hit

eax=00000000 ebx=f743b938 ecx=00404000 edx=00000000 esi=898f7238 edi=898f7240

eip=f74078d8 esp=f78aeee4 ebp=f78aef28 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+0x220:

f74078d8 e83b2bffff call ACPI!ACPIAmliGetNamedChild (f73fa418)

1: kd> t

eax=00000000 ebx=f743b938 ecx=00404000 edx=00000000 esi=898f7238 edi=898f7240

eip=f73fa418 esp=f78aeee0 ebp=f78aef28 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!ACPIAmliGetNamedChild:

f73fa418 55 push ebp

1: kd> dv

AcpiObject = 0x899b2300

ObjectId = 0x4449485f

1: kd> gu

eax=899b2344 ebx=f743b938 ecx=4449485f edx=00000000 esi=898f7238 edi=898f7240

eip=f74078dd esp=f78aeeec ebp=f78aef28 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+0x225:

f74078dd 85c0 test eax,eax

if (async) {

//

// Evaluate the request

//

status = AMLIAsyncEvalObject(

acpiObject,

&(request->ResultData),

argumentCount,

argumentPtr,

completionRoutine,

request

);

1: kd> kc

00 ACPI!AMLIAsyncEvalObject

01 ACPI!ACPIGet

02 ACPI!ACPIBuildProcessDevicePhaseUid

03 ACPI!ACPIBuildProcessGenericList

04 ACPI!ACPIBuildDeviceDpc

05 nt!KiRetireDpcList

06 nt!KiDispatchInterrupt

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

07 0x0

1: kd> dv

pns = 0x899b2344

pdataResult = 0x898f7264

icArgs = 0n0

pdataArgs = 0x00000000

pfnAsyncCallBack = 0xf74074ae

pvContext = 0x898f7238

pHData = 0x00000008

1: kd> u f74074ae

ACPI!ACPIGetWorkerForString [d:\srv03rtm\base\busdrv\acpi\driver\nt\get.c @ 4952]:

f74074ae 55 push ebp

f74074af 8bec mov ebp,esp

f74074b1 51 push ecx

f74074b2 53 push ebx

f74074b3 56 push esi

f74074b4 57 push edi

f74074b5 8b7d0c mov edi,dword ptr [ebp+0Ch]

f74074b8 85ff test edi,edi

rc = AsyncEvalObject(pns, pdataResult, icArgs, pdataArgs,

pfnAsyncCallBack, pvContext, TRUE);

1: kd> kc

00 ACPI!AsyncEvalObject

01 ACPI!AMLIAsyncEvalObject

02 ACPI!ACPIGet

03 ACPI!ACPIBuildProcessDevicePhaseUid

04 ACPI!ACPIBuildProcessGenericList

05 ACPI!ACPIBuildDeviceDpc

06 nt!KiRetireDpcList

07 nt!KiDispatchInterrupt

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

08 0x0

1: kd> dv

pns = 0x899b2344

pdataResult = 0x898f7264

icArgs = 0n0

pdataArgs = 0x00000000

pfnAsyncCallBack = 0xf74074ae

pvContext = 0x898f7238

fAsync = 0x01 ''

pctxt = 0x00000008

1: kd> u f74074ae

ACPI!ACPIGetWorkerForString [d:\srv03rtm\base\busdrv\acpi\driver\nt\get.c @ 4952]:

f74074ae 55 push ebp

f74074af 8bec mov ebp,esp

f74074b1 51 push ecx

f74074b2 53 push ebx

f74074b3 56 push esi

f74074b4 57 push edi

f74074b5 8b7d0c mov edi,dword ptr [ebp+0Ch]

f74074b8 85ff test edi,edi

else if (((rc = PushPost(pctxt, ProcessEvalObj, (ULONG_PTR)pns, 0,

&pctxt->Result)) == STATUS_SUCCESS) &&

((rc = ReadObject(pctxt, &pns->ObjData, &pctxt->Result)) !=

AMLISTA_PENDING))

{

fQueueContext = TRUE;

}

if (fQueueContext)

{

rc = RestartContext(pctxt, FALSE);

}

1: kd> kc

00 ACPI!RestartContext

01 ACPI!AsyncEvalObject

02 ACPI!AMLIAsyncEvalObject

03 ACPI!ACPIGet

04 ACPI!ACPIBuildProcessDevicePhaseUid

05 ACPI!ACPIBuildProcessGenericList

06 ACPI!ACPIBuildDeviceDpc

07 nt!KiRetireDpcList

08 nt!KiDispatchInterrupt

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

09 0x0

1: kd> dv

pctxt = 0x89857000

fDelayExecute = 0x00 ''

else if ((prest = NEWRESTOBJ(sizeof(RESTART))) != NULL)

{

pctxt->dwfCtxt |= CTXTF_NEED_CALLBACK;

prest->pctxt = pctxt;

ExInitializeWorkItem(&prest->WorkItem, RestartCtxtPassive, prest);

OSQueueWorkItem(&prest->WorkItem);

rc = AMLISTA_PENDING;

}

1: kd> x ACPI!ACPIWorkQueue

f743b318 ACPI!ACPIWorkQueue = struct _LIST_ENTRY [ 0x89906e3c - 0x8998735c ]

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

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

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

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

1: kd> dt acpi!acpiWorkItem 0x8998735c

+0x000 List : _LIST_ENTRY [ 0xf743b318 - 0x895e8d7c ]

+0x008 WorkerRoutine : 0xf7420746 void ACPI!RestartCtxtPassive+0

+0x00c Parameter : 0x89987358 Void

1: kd> dt RESTART 0x89987358

ACPI!RESTART

+0x000 pctxt : 0x89857000 _ctxt

+0x004 WorkItem : _WORK_QUEUE_ITEM

1: kd> gu

eax=00008004 ebx=899b2360 ecx=00000041 edx=00000002 esi=f7438ca8 edi=00000000

eip=f741fb55 esp=f78aee7c ebp=f78aee98 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!AsyncEvalObject+0x28c:

f741fb55 59 pop ecx

1: kd> gu

eax=00008004 ebx=00000000 ecx=00000000 edx=00000002 esi=899b2344 edi=898f7278

eip=f74153a2 esp=f78aeea0 ebp=f78aeecc 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!AMLIAsyncEvalObject+0x160:

f74153a2 8bf0 mov esi,eax

1: kd> gu

eax=00000103 ebx=f743b938 ecx=00000000 edx=00000002 esi=898f7238 edi=898f7240

eip=f7407905 esp=f78aeed4 ebp=f78aef28 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+0x24d:

f7407905 b903010000 mov ecx,103h

1: kd> gu

eax=00000103 ebx=89984138 ecx=00000103 edx=00000002 esi=899c0920 edi=4449485f

eip=f73fb7f9 esp=f78aef54 ebp=f78aef60 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!ACPIBuildProcessDevicePhaseUid+0x59:

f73fb7f9 8bf8 mov edi,eax

1: kd> gu

eax=00000103 ebx=89984138 ecx=00000103 edx=00000002 esi=899c0920 edi=4449485f

eip=f73fb7f9 esp=f78aef54 ebp=f78aef60 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!ACPIBuildProcessDevicePhaseUid+0x59:

f73fb7f9 8bf8 mov edi,eax

1: kd> kc

00 ACPI!ACPIBuildProcessDevicePhaseUid

01 ACPI!ACPIBuildProcessGenericList

02 ACPI!ACPIBuildDeviceDpc

03 nt!KiRetireDpcList

04 nt!KiDispatchInterrupt

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

05 0x0

1: kd> g

Breakpoint 6 hit

eax=00000000 ebx=00000006 ecx=80ae0dfa edx=80b18958 esi=89984138 edi=80b019f4

eip=f73fb914 esp=f78aef6c ebp=f78aef84 iopl=0 nv up ei pl zr na pe nc

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

ACPI!ACPIBuildProcessGenericList+0x50:

f73fb914 85db test ebx,ebx