ACPI中的HID(硬件ID)和PCI配置空间中的设备标识符的关系ACPI!ACPIBuildProcessDevicePhaseAdrOrHid函数分析有要么有HID或要么有ADR 📅 发布时间:2026/7/13 2:39:24 👁️ 浏览次数: ACPI中的HID硬件ID和PCI配置空间中的设备标识符的关系第一部分ACPI!ACPIBuildProcessDevicePhaseAdrOrHid函数分析有要么有HID或要么有ADRNTSTATUSACPIBuildProcessDevicePhaseAdrOrHid(IN PACPI_BUILD_REQUEST BuildRequest){nsObject ACPIAmliGetNamedChild(deviceExtension-AcpiObject,PACKED_HID);if (nsObject NULL) {//// Otherwise, there had better be an _ADR present//nsObject ACPIAmliGetNamedChild(deviceExtension-AcpiObject,PACKED_ADR);参考Device (AGP){Name (_ADR, 0x00010000) // _ADR: Address}Device (ISA){Name (_ADR, 0x00070000) // _ADR: AddressDevice (MBRD){Name (_HID, EisaId (PNP0C02)) // _HID: Hardware IDName (_UID, 0x1F) // _UID: Unique ID参考结束第二部分dsdt.dsl:1767: Device (AGP) 0x10000 PCI\VEN_8086DEV_7191SUBSYS_00000000REV_01\361aaa01008 1dsdt.dsl:1772: Device (ISA) 0x70000 PCI\VEN_8086DEV_7110SUBSYS_00000000REV_08\361aaa01038dsdt.dsl:2272: Device (PWR) 0x00070003dsdt.dsl:2284: Device (USB) 0x00070002dsdt.dsl:2294: Device (IDE) 0x00070001 PCI\VEN_8086DEV_7111SUBSYS_197615ADREV_01\361aaa01039dsdt.dsl:5026: Device (EXPL) ACPI\PNP0C02\4dsdt.dsl:5099: Device (DMAR) ACPI\PNP0C02dsdt.dsl:5134: Device (VMGC) ACPI\VMW0001p2p0 110000 PCI\VEN_15ADDEV_0790SUBSYS_00000000REV_02\361aaa01088 2p2p1 120000p2p2 130000p2p3 140000Device (PE40) 150000 PCI\VEN_15ADDEV_07A0SUBSYS_00000000REV_01\361aaa010A8 3Device (PE50) 160000 PCI\VEN_15ADDEV_07A0SUBSYS_00000000REV_01\361aaa010B0 bDevice (PE60) 170000 PCI\VEN_15ADDEV_07A0SUBSYS_00000000REV_01\361aaa010B8 13Device (PE70) 180000 PCI\VEN_15ADDEV_07A0SUBSYS_00000000REV_01\361aaa010C0 1b第三部分ACPI HID硬件ID和PCI配置空间中的设备标识符是不同但相关的概念它们服务于不同的目的但共同用于设备识别和驱动程序匹配。ACPI HID硬件ID是ACPI高级配置与电源接口命名空间中用于标识设备的字符串由固件如BIOS/UEFI定义。它遵循ABC[D]xxxx格式其中ABC[D]是供应商IDxxxx是设备ID。对于PCI主桥其ACPI HID通常是PNP0A03或PNP0A08这告诉操作系统这是一个PCI根总线控制器。ACPI HID用于操作系统在ACPI命名空间中枚举设备并加载相应的驱动程序。PCI配置空间中的设备标识符是PCI本地总线规范定义的硬件寄存器位于每个PCI设备的配置空间头部。它主要包括Vendor ID供应商ID和Device ID设备ID这两个16位的值共同唯一标识一个PCI设备的型号和制造商。这些信息是PCI设备固有的由硬件厂商在设计芯片时写入。关键区别与联系层级不同ACPI HID是平台固件层面的抽象标识用于操作系统发现和管理硬件资源PCI Vendor ID/Device ID是总线协议层面的物理标识用于PCI子系统内部识别设备。用途不同ACPI HID如PNP0A03让操作系统知道“这是一个PCI根桥”从而为其分配资源并枚举其下的PCI总线PCI Vendor ID/Device ID则让操作系统知道“这个PCI设备是一个Intel 82574L网卡”或“一个NVIDIA GeForce显卡”从而加载具体的设备驱动程序。关联性一个PCI设备如网卡、显卡会同时拥有PCI配置空间中的Vendor ID/Device ID以及一个ACPI HID通常是PNP0A03或PNP0A08如果它是根桥对于普通PCI设备其ACPI标识可能通过其他方式如_CID或设备树关联。操作系统会先通过ACPI HID发现PCI根桥然后通过扫描PCI总线读取各个设备的Vendor ID/Device ID来识别它们。简而言之ACPI HID告诉你“设备在系统中的角色”如PCI根桥而PCI配置空间的Vendor ID/Device ID告诉你“设备的具体型号”。它们是操作系统在不同层级识别硬件的两个关键信息。第二部分1: kd x ACPI!ACPIBuild*dispatchf74380d4 ACPI!AcpiBuildPowerResourceDispatch function *[5]f7438104 ACPI!AcpiBuildThermalZoneDispatch function *[4]f74380e8 ACPI!AcpiBuildRunMethodDispatch function *[7]f7438008 ACPI!AcpiBuildDeviceDispatch function *[23]f74380c4 ACPI!AcpiBuildOperationRegionDispatch function *[4]1: kd dx -r1 (*((ACPI!long (*(*)[23])(_ACPI_BUILD_REQUEST *))0xf7438008))(*((ACPI!long (*(*)[23])(_ACPI_BUILD_REQUEST *))0xf7438008)) [Type: long (* [23])(_ACPI_BUILD_REQUEST *)][0] : 0xf73fb840 [Type: long (*)(_ACPI_BUILD_REQUEST *)][1] : 0x0 [Type: long (*)(_ACPI_BUILD_REQUEST *)][2] : 0xf73fce98 [Type: long (*)(_ACPI_BUILD_REQUEST *)][3] : 0xf73fb118 [Type: long (*)(_ACPI_BUILD_REQUEST *)][4] : 0xf73fb09e [Type: long (*)(_ACPI_BUILD_REQUEST *)][5] : 0xf73fb40c [Type: long (*)(_ACPI_BUILD_REQUEST *)][6] : 0xf73fb7a0 [Type: long (*)(_ACPI_BUILD_REQUEST *)][7] : 0xf73fb246 [Type: long (*)(_ACPI_BUILD_REQUEST *)][8] : 0xf73fb72e [Type: long (*)(_ACPI_BUILD_REQUEST *)][9] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][10] : 0xf73fddf2 [Type: long (*)(_ACPI_BUILD_REQUEST *)][11] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][12] : 0xf73fd18a [Type: long (*)(_ACPI_BUILD_REQUEST *)][13] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][14] : 0xf73fcf04 [Type: long (*)(_ACPI_BUILD_REQUEST *)][15] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][16] : 0xf73fcfca [Type: long (*)(_ACPI_BUILD_REQUEST *)][17] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][18] : 0xf73fd09e [Type: long (*)(_ACPI_BUILD_REQUEST *)][19] : 0xf73fafda [Type: long (*)(_ACPI_BUILD_REQUEST *)][20] : 0xf73fb36a [Type: long (*)(_ACPI_BUILD_REQUEST *)][21] : 0xf73faf0a [Type: long (*)(_ACPI_BUILD_REQUEST *)][22] : 0xf73fb57c [Type: long (*)(_ACPI_BUILD_REQUEST *)]1: kd dds 0xf7438008f7438008 f73fb840 ACPI!ACPIBuildProcessGenericComplete [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 4654]f743800c 00000000f7438010 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]f7438020 f73fb7a0 ACPI!ACPIBuildProcessDevicePhaseUid [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 4547]f7438024 f73fb246 ACPI!ACPIBuildProcessDevicePhaseCid [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3018]f7438028 f73fb72e ACPI!ACPIBuildProcessDevicePhaseSta [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 4479]f743802c f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438030 f73fddf2 ACPI!ACPIBuildProcessDevicePhaseEjd [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3247]f7438034 f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438038 f73fd18a ACPI!ACPIBuildProcessDevicePhasePrw [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3935]f743803c f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438040 f73fcf04 ACPI!ACPIBuildProcessDevicePhasePr0 [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3572]f7438044 f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438048 f73fcfca ACPI!ACPIBuildProcessDevicePhasePr1 [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3684]f743804c f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438050 f73fd09e ACPI!ACPIBuildProcessDevicePhasePr2 [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3803]f7438054 f73fafda ACPI!ACPIBuildProcessDeviceGenericEvalStrict [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2657]f7438058 f73fb36a ACPI!ACPIBuildProcessDevicePhaseCrs [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 3147]f743805c f73faf0a ACPI!ACPIBuildProcessDeviceGenericEval [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 2562]f7438060 f73fb57c ACPI!ACPIBuildProcessDevicePhasePsc [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c 4228]f7438064 00000000f7438068 00000000f743806c 00000000
开源实时语音克隆IndexTTS2,推理加速实测,支持情绪输入+语速控制 IndexTTS 是B站语音团队开源的一系列语音克隆模型。 早期版本,在多场景应用中均表现惊艳,笔者也有过部署实测: 低延迟小智AI服务端搭建-本地TTS篇:IndexTTSvLLM加速推理 字错率和克隆相似性,均出于当时领先水平。 … 2026/7/11 1:32:32
基于天牛须优化算法BSA与广义神经网络GRNN的多特征预测模型 天牛须优化算法BSA广义神经网络GRNN做多特征输入,单个因变量输出的拟合预测模型。 程序内注释详细直接替换数据就可以用。 程序语言为matlab。在数据预测领域,我们常常需要构建模型来处理多特征输入和单个因变量输出的情况。今天就来聊聊如何利用天牛须优… 2026/7/12 22:51:14
【LLM基础学习】“TF-IDF 不只是公式:一篇文章带你搞懂关键词提取与文本相似度” 在上一节中,我们介绍了 TF-IDF 的基本原理:它通过结合 词频(TF) 和 逆文档频率(IDF) 来衡量每个词在文档中的重要性。理解了原理之后,我们可以用 Python 将文本转换为 TF-IDF 向量࿰… 2026/7/11 23:06:36
市面上比较实用的工商管理专业证书 在竞争日益激烈的职场中,工商管理专业的你,是否感觉自己的简历需要一些“硬通货”来加持?🤔 除了扎实的学位,一张高含金量的专业证书,往往能成为你叩开名企大门、实现职业跃迁的“金钥匙”。今天࿰… 2026/7/13 2:38:18
Prolog逻辑编程:声明式建模与知识推理实战指南 1. 这不是“又一门编程语言”:Prolog 的本质是逻辑建模的思维操作系统很多人第一次看到“Prolog — Programming in Logic”这个标题,下意识会把它归类为“和 Python、Java 并列的第 N 门编程语言”,然后迅速划走——毕竟学一门新语法的成本太… 2026/7/13 2:36:17
如何深度解析Atmosphere系统架构:从源码编译到部署实战指南 如何深度解析Atmosphere系统架构:从源码编译到部署实战指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable Atmosphere系统作为Nintendo Switch平台上最先进的自定义固件解决方… 2026/7/13 2:36:17
VSCode Remote-SSH 1.96 + X11 转发:3步配置实现远程服务器 Matplotlib 图形化调试 VSCode Remote-SSH X11 转发:3步实现远程服务器图形化调试全攻略远程开发已经成为现代编程工作流的重要组成部分,特别是对于需要高性能计算资源的机器学习开发者而言。但当我们尝试在远程服务器上运行Matplotlib、OpenCV或Pygame等图形化程序时… 2026/7/13 2:34:17
Python日志输出 1.日志相关概念 概述:日志是记录程序运行时关键步骤、报错异常的一种重要信息。对查看业务运行情况,异常排查有着非常重要的作用。 1.1 日志级别 DEBUG:调试信息(最低)。INFO:一般信息。WARNING:… 2026/7/13 2:32:17
SQLMap实战:检测银行储物柜管理系统SQL注入漏洞(CVE-2023-0562) 1. 项目概述与核心价值最近在复盘一些金融行业的老旧系统安全评估案例,发现一个挺有意思的共性问题:很多看起来“坚不可摧”的后台管理系统,其核心风险往往源于一个看似不起眼的输入点。就拿银行储物柜管理系统来说,它负责管理客户… 2026/7/13 2:32:17
HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70+个痛点 HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70个痛点 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经在Honey Select 2中遇到过… 2026/7/13 0:01:19
语音转文字工具AsrTools:让音频整理变得简单高效 语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text … 2026/7/13 0:03:19
基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_ 基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 独家界面!不会重复,此项目属于本人原创,若有雷同,均是盗卖,各位买… 2026/7/13 0:05:20
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/13 2:34:55