news 2026/3/27 5:39:00

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 3:35:31

AI智能生成微信红包封面工具 | 一键制作个性化红包封面系统源码

AI微信红包封面生成器源码是一款开源的微信红包封面生成工具,由前腾讯微信后台开发工程师「idoubi」开发并开源。项目名为“AI Cover”,旨在利用人工智能技术为用户提供个性化的微信红包封面生成服务。支持用户登录、付费方案和积分系统,提供…

作者头像 李华
网站建设 2026/3/24 7:03:30

5 款 AI 写论文哪个好?实测后发现:虎贲等考 AI 凭这 3 点碾压同类

在学术写作数字化转型的浪潮中,无数科研人、学子被 “文献难寻、数据失真、格式混乱、查重焦虑” 等痛点困扰。虎贲等考 AI 智能写作平台(官网:https://www.aihbdk.com/)应势而生,作为一款深度融合前沿人工智能技术的专…

作者头像 李华
网站建设 2026/3/20 13:49:50

利用Snyk发现与修复漏洞:守护软件安全,保障业务稳定

利用Snyk发现与修复漏洞:守护软件安全,保障业务稳定 作为一名开发者,代码的安全性和稳定性对我们保持理智至关重要。当代码不稳定或容易出错时,修复起来会令人沮丧且耗时,导致不知所措和心力交瘁的感觉。 这就是Snyk的…

作者头像 李华
网站建设 2026/3/24 1:12:34

搞一个免费10年的二级域名,公网访问飞牛NAS

有小伙伴想找一个免费的域名,但是最后还是自己买了一个。域名这个东西本身应该是无限多的,但是为啥还要花钱购买呢?嗯…… 所以,今天咱们搞一个免费的二级域名,足够使用就好。免费期限似乎是10年。 正文开始 目录导航…

作者头像 李华
网站建设 2026/3/27 3:26:46

核电站反应堆数字孪生 + 大模型:安全状态监测与风险预警技术

点赞、关注、收藏,不迷路 核电站反应堆作为核电装备的核心核心,是集高温高压、强放射性、多物理场耦合、运行工况复杂于一体的精密系统,其安全稳定运行直接关系到核电项目的生产安全与周边生态安全。传统反应堆安全状态监测与风险预警模式存在…

作者头像 李华