ACPI!ACPIDetectPdoDevices函数下半部分搜集关联信息
ACPI!ACPIDetectPdoDevices函数下半部分搜集关联信息0: kd dv newRelationSizenewRelationSize 5PCI0ACADCP00CP01ACPI\FixedButton//// Determine the size of the new relations. Use index as a// scratch buffer//index sizeof(DEVICE_RELATIONS) ( sizeof(PDEVICE_OBJECT) * (newRelationSize - 1) );//// Allocate the new device relation buffer. Use nonpaged pool since we// are at dispatch//newRelations ExAllocatePoolWithTag(NonPagedPool,index,ACPI_DEVICE_POOLTAG);if (newRelations NULL) {//// Return failure//return STATUS_INSUFFICIENT_RESOURCES;}//// Initialize DeviceRelations data structure//RtlZeroMemory( newRelations, index );#define DEV_TYPE_NEVER_PRESENT 0x0000000000000001#define DEV_TYPE_NOT_PRESENT 0x0000000000000002#define DEV_TYPE_REMOVED 0x0000000000000004#define DEV_TYPE_NOT_FOUND 0x0000000000000008#define DEV_TYPE_FDO 0x0000000000000010#define DEV_TYPE_PDO 0x0000000000000020#define DEV_TYPE_FILTER 0x0000000000000040#define DEV_TYPE_SURPRISE_REMOVED 0x0000000000000080#define DEV_TYPE_NOT_ENUMERATED 0x0000000000000100#define DEV_TYPE_PDO 0x0000000000000020#define DEV_TYPE_NOT_PRESENT 0x0000000000000002//// Loop until we get back to the parent//while (deviceExtension ! NULL) {//// The only objects that we care about are those that are marked as// PDOs and have a phsyical object associated with them//if (deviceExtension-Flags DEV_TYPE_PDO deviceExtension-DeviceObject ! NULL !(deviceExtension-Flags DEV_MASK_NOT_PRESENT) ) {//// We dont ObReferenceO here because we are still at// dispatch level (and for efficiencys sake, we dont// want to drop down)//newRelations-Objects[index] deviceExtension-DeviceObject;0: kd dt DEVICE_RELATIONS 899875a0nt!DEVICE_RELATIONS0x000 Count : 00x004 Objects : [1] 0x899050e8 _DEVICE_OBJECT0: kd dx -id 0,0,899a2278 -r1 (*((ntkrnlmp!_DEVICE_OBJECT * (*)[1])0x899875a4))(*((ntkrnlmp!_DEVICE_OBJECT * (*)[1])0x899875a4)) [Type: _DEVICE_OBJECT * [1]][0] : 0x899050e8 : Device for \Driver\ACPI [Type: _DEVICE_OBJECT *]0: kd dd 899875a0899875a0 00000000 899050e8 00000000 00000000899875b0 00000000 00000000 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 899612680: kd reax02010020 ebxf743b620 ecx00402000 edx00402000 esi899c0d58 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a24400000001//// Check to see if we have found all the objects that we care// about. As in, dont mess the system by walking past the end// of the device relations//if (newRelationSize index) { //下断点//// Done//break;}0: kd bp f74005330: kd gBreakpoint 87 hiteax00000000 ebxf743b620 ecx2000010a edx00000000 esi899ae008 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a244000000010: kd dd 899875a0899875a0 00000000 899050e8 00000000 00000000899875b0 00000000 00000000 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 899612680: kd gBreakpoint 87 hiteax00000000 ebxf743b620 ecx2000010a edx00000000 esi899aee58 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a244000000010: kd dd 899875a0899875a0 00000000 899050e8 00000000 00000000899875b0 00000000 00000000 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 899612680: kd gBreakpoint 87 hiteax00000020 ebxf743b620 ecx00406000 edx00406000 esi899aec58 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a244000000020: kd dd 899875a0899875a0 00000000 899050e8 89906690 00000000899875b0 00000000 00000000 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 899612680: kd gBreakpoint 87 hiteax00000000 ebxf743b620 ecx2037010a edx00000000 esi899aea40 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a244000000020: kd dd 899875a0899875a0 00000000 899050e8 89906690 00000000899875b0 00000000 00000000 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 899612680: kd gBreakpoint 87 hiteax00300020 ebxf743b620 ecx8051e010 edx8051e010 esi899ab690 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a244000000030: kd dd 899875a0899875a0 00000000 899050e8 89906690 8952a6c8899875b0 00000000 00000000 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 899612680: kd gBreakpoint 87 hiteax00000000 ebxf743b620 ecx2037010a edx00000000 esi8990eaf0 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a244000000030: kd dd 899875a0899875a0 00000000 899050e8 89906690 8952a6c8899875b0 00000000 00000000 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 899612680: kd gBreakpoint 87 hiteax00000000 ebxf743b620 ecx6030010a edx00000000 esi8990e8d8 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a244000000030: kd dd 899875a0899875a0 00000000 899050e8 89906690 8952a6c8899875b0 00000000 00000000 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 899612680: kd gBreakpoint 87 hiteax00300020 ebxf743b620 ecx8051e010 edx8051e010 esi89906008 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a244000000040: kd dd 899875a0899875a0 00000000 899050e8 89906690 8952a6c8899875b0 8952a858 00000000 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 899612680: kd gBreakpoint 87 hiteax00360020 ebxf743b620 ecx0058a000 edx0058a000 esi89906ea0 edi899875a0eipf7400533 espf789a220 ebpf789a250 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIDetectPdoDevices0x355:f7400533 8b45f4 mov eax,dword ptr [ebp-0Ch] ss:0010:f789a244000000050: kd dd 899875a0899875a0 00000000 899050e8 89906690 8952a6c8899875b0 8952a858 8952a9e8 02050004 46706341899875c0 89987568 8997706c 00000000 00000001899875d0 00000001 f740d62c 89907c70 899771c4899875e0 00180005 46706341 80bf6229 80bf6229899875f0 020b0002 50706341 8957e130 8990028089987600 8993eb28 8993eb28 5f534750 8993ea2889987610 02120006 46706341 898a8188 89961268//// Update the size of the relations by the number of matches that we// successfully made//newRelations-Count index;newRelationSize index;0: kd dd 899875a0899875a0 00000005 899050e8 89906690 8952a6c8899875b0 8952a858 8952a9e8 02050004 467063410: kd dt DEVICE_RELATIONS 899875a0nt!DEVICE_RELATIONS0x000 Count : 50x004 Objects : [1] 0x899050e8 _DEVICE_OBJECT//// We have to reference all of the objects that we added//index (currentRelations ! NULL ? currentRelations-Count : 0);for (; index newRelationSize; index) {//// Attempt to reference the object//status ObReferenceObjectByPointer(newRelations-Objects[index],0,NULL,KernelMode);//// Update the device relation pointer//*DeviceRelations newRelations;//// Done//return STATUS_SUCCESS;}0: kd dv DeviceRelationsDeviceRelations 0xf789a2a40: kd dx -r1 ((ACPI!_DEVICE_RELATIONS * *)0xf789a2a4)((ACPI!_DEVICE_RELATIONS * *)0xf789a2a4) : 0xf789a2a4 [Type: _DEVICE_RELATIONS * *]0x899875a0 [Type: _DEVICE_RELATIONS *]0: kd dx -r1 ((ACPI!_DEVICE_RELATIONS *)0x899875a0)((ACPI!_DEVICE_RELATIONS *)0x899875a0) : 0x899875a0 [Type: _DEVICE_RELATIONS *][0x000] Count : 0x5 [Type: unsigned long][0x004] Objects [Type: _DEVICE_OBJECT * [1]]

相关新闻

基于深度学习的面部表情识别系统[python]-计算机毕业设计源码+LW文档

基于深度学习的面部表情识别系统[python]-计算机毕业设计源码+LW文档

摘要:本文详细阐述了一个基于深度学习的面部表情识别系统。首先介绍了面部表情识别的研究背景和意义,接着对涉及的关键技术如深度学习、卷积神经网络等进行了简介。通过需求分析明确了系统的功能和非功能需求,在系统设计部分阐述了系统的架构…

2026/7/7 17:36:14 阅读更多 →
CGI及CGIC库的使用

CGI及CGIC库的使用

CGI 作为标记语言html是无法读取硬件信息的,但C语言可以实现一个html页面传感器数据的数据是动态变化的,html页面是静止的,可以让浏览器每一秒刷新一次页面,但是浪费资源且体验效果一般 关于CGI CGI 全称为 Common Gateway Int…

2026/7/7 8:22:41 阅读更多 →
JOULWATT杰华特 JW4054SOTA#TRPBF SOT23-5 DC-DC电源芯片

JOULWATT杰华特 JW4054SOTA#TRPBF SOT23-5 DC-DC电源芯片

功能特性 最高可达18伏输入可持续电压 7.5伏输入过压保护 最高可达500mA可配置充电电流 输入反接保护 电池反接保护 自动充电管理 涓流充电 恒流充电 恒压充电 充电终止 自动充电 4.2V(JW4054)/4.35V(JW4054A)充电电压,精度1% 电压精度土1% 2.9伏涓流充电阈值 1/10I…

2026/7/6 15:49:10 阅读更多 →

最新新闻

从绿的谐波×SKF合资到美光93亿扩产:大规模量产时代的设备选型逻辑

从绿的谐波×SKF合资到美光93亿扩产:大规模量产时代的设备选型逻辑

2026年7月7日,制造业释放了三个信号:绿的谐波与SKF成立合资公司聚焦高精密轴承规模化供应、通用技术沈阳机床第1000条组合产线交付、美光93亿美元扩建广岛HBM工厂、日月光宣布调涨先进封装报价。三个信号指向同一个趋势:大规模量产时代的设备…

2026/7/8 12:58:23 阅读更多 →
TPA3128D2与TM4C129LNCZAD音频系统开发指南

TPA3128D2与TM4C129LNCZAD音频系统开发指南

1. 项目背景与核心组件介绍在嵌入式音频系统开发领域,如何实现高保真音质与高效能放大的完美结合一直是工程师们追求的目标。TPA3128D2与TM4C129LNCZAD这对黄金组合,恰好为解决这一需求提供了理想的硬件平台。TPA3128D2是德州仪器(TI)推出的一款双通道D类…

2026/7/8 12:54:22 阅读更多 →
冷库是什么,为什么高效运行离不开核心部件协同 你的冷库电费为何居高不下?问题可能出在“看不见”的部件上

冷库是什么,为什么高效运行离不开核心部件协同 你的冷库电费为何居高不下?问题可能出在“看不见”的部件上

许多生鲜商户或食品加工厂主发现,新装的冷库明明温度达标,但每月电费却远超预期。有人归咎于压缩机功率大,有人怪天气太热,却很少意识到:冷库的高效运行,从来不是单一设备的功劳,而是冷凝机组、…

2026/7/8 12:54:22 阅读更多 →
Unity 智能多媒体展示引擎 1.0

Unity 智能多媒体展示引擎 1.0

智能多媒体展示引擎是一款专为现代应用程序打造的、企业级的 UI 展示解决方案。它的核心使命是通过高度集成化的功能与智能化的逻辑,在各类应用界面中构建出功能强大、体验卓越、易于维护的动态内容展示中心。 基础功能支持 多媒体格式兼容:原生支持在同…

2026/7/8 12:50:15 阅读更多 →
靠谱的餐饮油水分离器哪家好选

靠谱的餐饮油水分离器哪家好选

在餐饮行业中,油水分离器是必不可少的设备。它不仅能有效分离废水中的油脂,减少对环境的污染,还能避免下水道堵塞,保障餐饮场所的正常运营。然而,市场上的油水分离器品牌众多,质量参差不齐,该如…

2026/7/8 12:50:15 阅读更多 →
门店评价不展示的诊断模型

门店评价不展示的诊断模型

从运营诊断角度看,评价不展示可以拆成两个状态:折叠与删除。一、折叠区判断 常见触发项包括:评价文本少于15字、内容参考意义弱、账号与商家关联性强、账号诚信度较低、文案复制粘贴痕迹明显。折叠并不等于商家违规,它更像内容权重…

2026/7/8 12:44:12 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻