news 2026/2/23 21:49:34

ACPI!ACPIBuildProcessDeviceGenericEvalStrict函数对节点ISA的处理没有_EJD子节点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ACPI!ACPIBuildProcessDeviceGenericEvalStrict函数对节点ISA的处理没有_EJD子节点

ACPI!ACPIBuildProcessDeviceGenericEvalStrict函数对节点ISA的处理没有_EJD子节点

1: kd> g
Breakpoint 5 hit
eax=00000009 ebx=00000009 ecx=89984198 edx=00000001 esi=89984188 edi=80b019f4
eip=f73fb911 esp=f78aef68 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+0x4d:
f73fb911 ff55f4 call dword ptr [ebp-0Ch] ss:0010:f78aef78={ACPI!ACPIBuildProcessDeviceGenericEvalStrict (f73fafda)}
1: kd> t
eax=00000009 ebx=00000009 ecx=89984198 edx=00000001 esi=89984188 edi=80b019f4
eip=f73fafda esp=f78aef64 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!ACPIBuildProcessDeviceGenericEvalStrict:
f73fafda 55 push ebp
1: kd> kc
#
00 ACPI!ACPIBuildProcessDeviceGenericEvalStrict
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 = 0x89984188
status = 0n8

1: kd> dx -r1 ((ACPI!_ACPI_BUILD_REQUEST *)0x89984188)
((ACPI!_ACPI_BUILD_REQUEST *)0x89984188) : 0x89984188 [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 : 0x9 [Type: unsigned long]
[+0x018] NextWorkDone : 0x2 [Type: unsigned long]
[+0x01c] BuildContext : 0x899c0a88 [Type: void *]
[+0x020] Status : 0 [Type: long]
[+0x024] CurrentObject : 0x899b22bc [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 : 0xf [Type: unsigned long]
[+0x044] String : 0xf : Unable to read memory at Address 0xf [Type: unsigned char *]
[+0x044] TargetListEntry : 0xf [Type: _LIST_ENTRY *]


1: kd> x acpi!AcpiBuildDevicePowerNameLookup
f7438068 ACPI!AcpiBuildDevicePowerNameLookup = unsigned long [23]
1: kd> dx -r1 (*((ACPI!unsigned long (*)[23])0xf7438068))
(*((ACPI!unsigned long (*)[23])0xf7438068)) [Type: unsigned long [23]]
[0] : 0x0 [Type: unsigned long]
[1] : 0x0 [Type: unsigned long]
[2] : 0x0 [Type: unsigned long]
[3] : 0x0 [Type: unsigned long]
[4] : 0x0 [Type: unsigned long]
[5] : 0x0 [Type: unsigned long]
[6] : 0x0 [Type: unsigned long]
[7] : 0x0 [Type: unsigned long]
[8] : 0x0 [Type: unsigned long]
[9] : 0x444a455f [Type: unsigned long]
[10] : 0x0 [Type: unsigned long]
[11] : 0x5752505f [Type: unsigned long]
[12] : 0x0 [Type: unsigned long]
[13] : 0x3052505f [Type: unsigned long]
[14] : 0x0 [Type: unsigned long]
[15] : 0x3152505f [Type: unsigned long]
[16] : 0x0 [Type: unsigned long]
[17] : 0x3252505f [Type: unsigned long]
[18] : 0x0 [Type: unsigned long]
[19] : 0x5352435f [Type: unsigned long]
[20] : 0x0 [Type: unsigned long]
[21] : 0x4353505f [Type: unsigned long]
[22] : 0x0 [Type: unsigned long]
1: kd> dd 0xf7438068
f7438068 00000000 00000000 00000000 00000000
f7438078 00000000 00000000 00000000 00000000
f7438088 00000000 444a455f 00000000 5752505f
f7438098 00000000 3052505f 00000000 3152505f
f74380a8 00000000 3252505f 00000000 5352435f
f74380b8 00000000 4353505f 00000000 f73fb840
f74380c8 00000000 00000000 00000000 f73fb840
f74380d8 00000000 f73fb94c f73fb98a f73fba36
1: kd> db 0xf7438068
f7438068 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
f7438078 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
f7438088 00 00 00 00 5f 45 4a 44-00 00 00 00 5f 50 52 57 ...._EJD...._PRW
f7438098 00 00 00 00 5f 50 52 30-00 00 00 00 5f 50 52 31 ...._PR0...._PR1
f74380a8 00 00 00 00 5f 50 52 32-00 00 00 00 5f 43 52 53 ...._PR2...._CRS
f74380b8 00 00 00 00 5f 50 53 43-00 00 00 00 40 b8 3f f7 ...._PSC....@.?.
f74380c8 00 00 00 00 00 00 00 00-00 00 00 00 40 b8 3f f7 ............@.?.
f74380d8 00 00 00 00 4c b9 3f f7-8a b9 3f f7 36 ba 3f f7 ....L.?...?.6.?.

Device (ISA)
{
Name (_ADR, 0x00070000) // _ADR: Address
Device (MBRD)
{

//
// Base everything on the current amount of workDone
//
objectName = AcpiBuildDevicePowerNameLookup[BuildRequest->CurrentWorkDone];

//
// Does this object exists? 不存在_EJD对象。
//
BuildRequest->CurrentObject = ACPIAmliGetNamedChild(
deviceExtension->AcpiObject,
objectName
); eax=00000000

1: kd> p
eax=00000000 ebx=899c0a88 ecx=899b2278 edx=00000001 esi=89984188 edi=899841cc
eip=f73fb00f esp=f78aef50 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!ACPIBuildProcessDeviceGenericEvalStrict+0x35:
f73fb00f 85c0 test eax,eax

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

脑波分析工具:测试AR眼镜的认知负荷极限

AR眼镜的认知负荷挑战与测试需求 随着增强现实(AR)技术在消费电子、医疗和工业领域的广泛应用,AR眼镜的用户体验优化成为关键。然而,AR界面固有的信息过载问题可能导致用户认知负荷过高,影响任务效率和安全性。认知负…

作者头像 李华
网站建设 2026/2/22 6:51:53

嵌入式C++教程——引用计数的实现与性能

嵌入式C教程——引用计数的实现与性能 写引用计数的文章就像在讲“谁送快递给谁付钱”——每多一个人拿着快递,你的账本上就多记一笔;最后那个人把快递丢在门口,账本清零,快递就可以销毁。区别是:在嵌入式世界里&…

作者头像 李华
网站建设 2026/2/21 8:38:29

Claude开发进阶 04,Claude 一键生成技术文档:解放开发者的“文档枷锁”

对于每一位开发者而言,编码实现功能是充满创造力的乐趣,而撰写技术文档却常常成为耗时耗力的“负担”。祖传代码无文档、接口更新文档滞后、跨团队协作因文档歧义踩坑……这些场景几乎是研发流程中的常态。好在 Anthropic 推出的 Claude 系列模型&#x…

作者头像 李华
网站建设 2026/2/4 16:31:05

AI历史学家偏见:算法重构事件的客观性质质疑——软件测试从业者的技术应对与伦理责任

一、算法重构历史的偏见生成机制 数据层面的结构性偏差 AI历史模型依赖的训练数据常包含隐性偏见。如殖民史料的种族视角缺失、女性历史记录的系统性忽略等,导致算法将历史人物事件进行片面化建模。2025年NJU研究表明,未清洗的史料库中78%存在地域与性别…

作者头像 李华