得到节点Device (P2P0)的子节点Device (S1F0)的PCI地址

得到节点Device (P2P0)的子节点Device (S1F0)的PCI地址

第0部分:

dsdt.dsl:6096: Device (P2P0)
dsdt.dsl:6306: Device (S1F0)


Device (S1F0)
{
Name (_ADR, Zero) // _ADR: Address
Name (_SUN, 0x20) // _SUN: Slot User Number
OperationRegion (REGS, PCI_Config, 0x00, 0x04)
Field (REGS, DWordAcc, NoLock, Preserve)
{
ID, 32
}

Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (BSTA (ID))
}

Device (S2F0)
{
Name (_ADR, 0x00010000) // _ADR: Address
Name (_SUN, 0x21) // _SUN: Slot User Number

第一部分:

NTSTATUS
EXPORT
PciConfigSpaceHandlerWorker(
IN PNSOBJ AcpiObject,
IN NTSTATUS CompletionStatus,
IN POBJDATA Result,
IN PVOID Context
)
{

if (!interface) {

if (!(state->Flags & PCISUPP_GOT_SLOT_INFO)) {

state->Flags |= PCISUPP_GOT_SLOT_INFO;

status = GetPciAddress(state->PciObj,
PciConfigSpaceHandlerWorker,
(PVOID)state,
&state->Bus,
&state->Slot);

1: kd> kc
#
00 ACPI!GetPciAddress
01 ACPI!PciConfigSpaceHandlerWorker

02 ACPI!GetOpRegionScopeWorker
03 ACPI!IsPciDeviceWorker
04 ACPI!IsPciDeviceWorker
05 ACPI!IsPciDeviceWorker
06 ACPI!ACPIGetWorkerForString
07 ACPI!AsyncCallBack
08 ACPI!RunContext
09 ACPI!DispatchCtxtQueue
0a ACPI!StartTimeSlicePassive
0b ACPI!ACPIWorker
0c nt!PspSystemThreadStartup
0d nt!KiThreadStartup
1: kd> dv
PciObj = 0x8996d45c
CompletionRoutine = 0xf740d62c
Context = 0x898a8a10
Bus = 0x898a8a48 ""
Slot = 0x898a8a44
1: kd> dx -r1 ((ACPI!_NSObj *)0x8996d45c)
((ACPI!_NSObj *)0x8996d45c) : 0x8996d45c [Type: _NSObj *]
[+0x000] list [Type: _List]
[+0x008] pnsParent : 0x8996cd78 [Type: _NSObj *]
[+0x00c] pnsFirstChild : 0x8996d4d4 [Type: _NSObj *]
[+0x010] dwNameSeg : 0x30463153 [Type: unsigned long]
[+0x014] hOwner : 0x899af330 [Type: void *]
[+0x018] pnsOwnedNext : 0x8996d298 [Type: _NSObj *]
[+0x01c] ObjData [Type: _ObjData]
[+0x030] Context : 0x89968c88 [Type: void *]
[+0x034] dwRefCount : 0x0 [Type: unsigned long]
1: kd> db 0x8996cd78
8996cd78 38 cc 96 89 88 4f 97 89-ac ff 9a 89 f0 cd 96 89 8....O..........
8996cd88 50 32 50 30 30 f3 9a 89-38 cc 96 89 00 00 06 00 P2P00...8.......
8996cd98 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996cda8 a0 8e 96 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...
8996cdb8 00 90 96 89 00 00 00 00-04 00 00 00 02 00 00 00 ................
8996cdc8 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996cdd8 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
8996cde8 44 00 00 00 00 90 96 89-b0 4b 97 89 b4 ce 96 89 D........K......


1: kd> kc
#
00 ACPI!GetPciAddressWorker
01 ACPI!GetPciAddress
02 ACPI!PciConfigSpaceHandlerWorker
03 ACPI!GetOpRegionScopeWorker
04 ACPI!IsPciDeviceWorker
05 ACPI!IsPciDeviceWorker
06 ACPI!IsPciDeviceWorker
07 ACPI!ACPIGetWorkerForString
08 ACPI!AsyncCallBack
09 ACPI!RunContext
0a ACPI!DispatchCtxtQueue
0b ACPI!StartTimeSlicePassive
0c ACPI!ACPIWorker
0d nt!PspSystemThreadStartup
0e nt!KiThreadStartup
1: kd> dv
AcpiObject = 0x8996d45c
Status = 0n0
Result = 0x00000000
Context = 0x899c1460
buffer = unsigned char [64] ""
1: kd> dt GET_ADDRESS_CONTEXT 0x899c1460
ACPI!GET_ADDRESS_CONTEXT
+0x000 PciObject : 0x8996d45c _NSObj
+0x004 Bus : 0x898a8a48 ""
+0x008 Slot : 0x898a8a44 _PCI_SLOT_NUMBER
+0x00c ParentBus : 0 ''
+0x010 ParentSlot : _PCI_SLOT_NUMBER
+0x014 Flags : 0
+0x018 Address : 0
+0x01c BaseBusNumber : 0
+0x020 RunCompletion : 0n-1
+0x024 CompletionRoutine : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker+0
+0x028 CompletionContext : 0x898a8a10 Void

//
// First, determine the slot number.
//
if (!(state->Flags & PCISUPP_CHECKED_ADR)) {

//
// Get the _ADR.
//
state->Flags |= PCISUPP_CHECKED_ADR;
status = ACPIGetNSAddressAsync(
state->PciObject,
GetPciAddressWorker,
(PVOID)state,
&(state->Address),
NULL
);


1: kd> kc
#
00 ACPI!ACPIGet
01 ACPI!GetPciAddressWorker
02 ACPI!GetPciAddress
03 ACPI!PciConfigSpaceHandlerWorker
04 ACPI!GetOpRegionScopeWorker
05 ACPI!IsPciDeviceWorker
06 ACPI!IsPciDeviceWorker
07 ACPI!IsPciDeviceWorker
08 ACPI!ACPIGetWorkerForString
09 ACPI!AsyncCallBack
0a ACPI!RunContext
0b ACPI!DispatchCtxtQueue
0c ACPI!StartTimeSlicePassive
0d ACPI!ACPIWorker
0e nt!PspSystemThreadStartup
0f nt!KiThreadStartup
1: kd> dv
Target = 0x8996d45c
ObjectID = 0x5244415f
Flags = 0x48040402
SimpleArgument = 0x00000000
SimpleArgumentSize = 0

1: kd> db 0x8996d45c
8996d45c 98 d2 96 89 60 d8 96 89-78 cd 96 89 d4 d4 96 89 ....`...x.......
8996d46c 53 31 46 30 30 f3 9a 89-98 d2 96 89 00 00 06 00 S1F00...........

1: kd> db 0x8996d45c
8996d45c 98 d2 96 89 60 d8 96 89-78 cd 96 89 d4 d4 96 89 ....`...x.......
8996d46c 53 31 46 30 30 f3 9a 89-98 d2 96 89 00 00 06 00 S1F00...........
8996d47c 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996d48c 88 8c 96 89 00 00 00 00-48 4f 52 47 34 00 00 00 ........HORG4...
8996d49c 00 90 96 89 00 00 00 00-04 00 00 00 02 00 00 00 ................
8996d4ac 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
8996d4bc 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
8996d4cc 44 00 00 00 00 90 96 89-1c d8 96 89 18 d5 96 89 D...............
1: kd> dt nsobj 0x8996d45c
ACPI!NSOBJ
+0x000 list : _List
+0x008 pnsParent : 0x8996cd78 _NSObj
+0x00c pnsFirstChild : 0x8996d4d4 _NSObj
+0x010 dwNameSeg : 0x30463153
+0x014 hOwner : 0x899af330 Void
+0x018 pnsOwnedNext : 0x8996d298 _NSObj
+0x01c ObjData : _ObjData
+0x030 Context : 0x89968c88 Void
+0x034 dwRefCount : 0
1: kd> db 0x8996cd78
8996cd78 38 cc 96 89 88 4f 97 89-ac ff 9a 89 f0 cd 96 89 8....O..........
8996cd88 50 32 50 30 30 f3 9a 89-38 cc 96 89 00 00 06 00 P2P00...8.......
8996cd98 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1215297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

导师严选2026继续教育一键生成论文工具TOP9:学术写作全维度测评

导师严选2026继续教育一键生成论文工具TOP9:学术写作全维度测评 2026年继续教育论文工具测评:精准筛选,助力高效写作 在继续教育领域,论文写作已成为许多学员必须面对的挑战。无论是课程结业、职称评审还是学术深造,…

开源DTU全套方案详解:原理图设计、PCB布局、BOM清单、上位机源码及Keil嵌入式源码集成

开源DTU全套方案 原理图PCB BOM清单 上位机源码 keil嵌入式源码最近在折腾工业物联网网关设备,发现市面上的DTU价格从几百到上万不等。作为野生电子工程师,这能忍?果断翻出吃灰的立创EDA,撸起袖子自己干。今天就把这套开源DTU方案…

基于MATLAB的TERCOM算法实现与优化

一、TERCOM算法核心流程 TERCOM(地形轮廓匹配)算法在MATLAB中的实现可分为以下步骤:地形数据预处理加载数字高程模型(DEM),生成高斯加权窗口构建地形特征矩阵(高度、粗糙度、坡度等)…

小红书高清/4K视频下载指南(2026最新实测有效)

小红书近期更新后,直接获取高质量视频源确实变得更加困难。但别担心!经过实际测试,目前仍有两种稳定高效的方法,可帮助你轻松下载 1080p 甚至 4K 超清视频——只需借助以下工具即可实现。 📌 关键前提:必须…

电子标签拣货系统:高效、智能的物流分拣解决方案

电子标签拣货系统电子标签拣货系统的核心是让货架上的指示灯告诉拣货员"往这儿拿"。想象一下仓库里几百个货位同时亮灯闪烁的场景,像不像科幻片里的数据流动特效?这套系统背后藏着几个关键技术点,咱们边写代码边唠。硬件驱动是地基…

这群程序员疯了,不给钱的活都干

这群程序员疯了,不给钱的活都干昨天下午,【程序员接单群】里的一条需求,炸出了一群 “疯魔” 的程序员。 没有报价拉扯,没有工期讨价还价,甚至连一句 “有报酬吗” 都没人问 —— 平时谈项目先聊预算的程序员们,…

珲春推荐一下烤肉哪家正宗

珲春正宗烤肉之延炭乳酸菌烤肉推荐在珲春这座充满美食魅力的城市,烤肉可谓是当地饮食文化的一张亮丽名片。众多食客在寻觅正宗烤肉的过程中,常常会有诸多疑问。今天,就为大家推荐一家在珲春相当正宗且独具特色的烤肉店——延炭乳酸菌烤肉。主…

珲春推荐烤肉哪家无广

珲春无广烤肉推荐:延炭乳酸菌烤肉 在珲春这座美食之城,烤肉是当地极具特色的美食之一。若想寻找一家无广且高品质的烤肉店,延炭乳酸菌烤肉是不可错过的选择。 主打健康概念 延炭乳酸菌烤肉以其独特的健康理念脱颖而出。店内用乳酸菌腌制肉类…

MATLAB算法仿真:无人机系统三维地图路径规划 - 多种算法对比(包括BA、CPFIBA和D...

Matlab算法仿真,无人机系统三维地图路径规划。 多种算法对比:BA是蝙蝠算法,CPFIBA和DEBA是改进的蝙蝠算法 注:只保证结果跟下图一样,不对代码解释教学,代码里面有部分解释! 这个代码比较大&…

基于Matlab-YALMIP-CPLEX的微网优化调度:‘总费用最低‘的蓄电池与市场购售电功...

基于yalmipcplex的微网优化调度 程序:Matlab-yalmip-cplex 调度优化 蓄电池 市场购售电 功率平衡 目标函数:总费用最低 【温馨提示】用cplex跑不了不是程序的问题哦,是求解器没有安装好,建议在matlab上安装版本相匹配的求解器 微…

贾子战略 - 军事理论体系的深度解构与时代价值洞察

认知、行动与价值的统一:贾子战略-军事理论体系解构及其现代意义 摘要: 贾子战略-军事理论体系以“战略五定律”为认知框架、“军事五定律”为行动准则、“御敌于国门之外”为价值导向,构建了“认知—行动—价值”的三维逻辑闭环。该体系融合…

揭秘优质大牌美妆小样供应链,这几点是关键,服务好的大牌美妆小样供应链哪个好精选国内优质品牌榜单

在消费分级与体验经济并行的当下,大牌美妆小样已从单纯的赠品演变为一个独立的、潜力巨大的市场赛道。对于美妆集合店、电商主播、社群团购主乃至跨境贸易商而言,稳定、正品、高性价比的小样供应链,不仅是吸引流量、…

Vmware安装Windows11

1、开始安装时报错,该电脑必须支持TPM 2.0 2、关闭虚拟机,在虚拟机设置中,选项------访问控制------加密,设置一个密码 3、硬件------添加------可信任模块------完成 4、再次开启此虚拟机,就可以进入正常安装…

vc++达成控制NRP8S功率计读取功率(附带源码)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2026年国内质量好的布袋除尘器制造厂哪里有卖,通风蝶阀/除尘器布袋/星型卸料器/除尘器骨架,布袋除尘器制造厂怎么选

行业洞察:布袋除尘器市场格局与采购指南 随着环保政策持续收紧,工业粉尘治理需求激增,布袋除尘器作为核心设备,其市场集中度与技术差异化显著提升。据统计,2025年国内布袋除尘器市场规模突破280亿元,年复合增长率…

基于BP神经网络的迭代优化实现(MATLAB)

一、MATLAB实现代码 1. 网络结构定义 %% 网络参数设置 input_neurons 2; % 输入层神经元数 hidden_neurons 3; % 隐藏层神经元数 output_neurons 1; % 输出层神经元数 learning_rate 0.1; % 学习率 epochs 10000; % 迭代次数%% 权重初始化(He初始化…

判断推理错题集

目录 一. 练习1二. 练习2三. 练习3 \quad 一. 练习1 \quad 要知道支持的点是什么!! \quad \quad AC重复论据 D是必要条件 \quad \quad 用代入法 选B 没有矛盾,也不知道谁真谁假,很乱就用代入法 \quad \quad 选A,另有…

MATLAB小波交叉功率谱分析源代码实现

一、核心代码框架 基于MATLAB小波工具箱(Wavelet Toolbox),实现两个时间序列的小波交叉功率谱分析,包含数据预处理、参数设置、交叉谱计算及可视化。 %% 1. 数据加载与预处理 % 加载两个时间序列数据(示例&#xff1…

我用 XinServer 解决了多端数据同步问题

我用 XinServer 解决了多端数据同步问题 最近在做一个外包项目,客户要求同时有微信小程序、管理后台,未来可能还要上App。需求一出来,我头就大了——这意味着一套数据,要服务至少三个不同的前端。按照传统做法,我得吭…

导师严选2026 AI论文写作软件TOP8:本科生毕业论文必备测评

导师严选2026 AI论文写作软件TOP8:本科生毕业论文必备测评 2026年AI论文写作软件测评:为何值得一看 随着人工智能技术的不断进步,AI论文写作工具已经成为高校学生和科研人员的重要辅助工具。然而,面对市场上琳琅满目的产品&…