news 2026/4/16 11:54:25

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
得到节点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 ................

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

基于深度学习的车辆追踪系统

目录 深度学习车辆追踪系统概述关键技术组成典型应用场景挑战与优化方向 源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 深度学习车辆追踪系统概述 深度学习车辆追踪系统利用卷积神经网络(CNN)、循环神经网络&…

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

基于深度学习的工地安全帽检测系统

目录深度学习的工地安全帽检测系统概述核心技术方法系统实现流程性能优化方向应用效果评估源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!深度学习的工地安全帽检测系统概述 工地安全帽检测系统利用计算机视觉和深度学习技术&#xff…

作者头像 李华
网站建设 2026/4/11 3:26:41

基于深度学习的坐姿检测系统

目录 深度学习的坐姿检测系统概述核心技术与方法系统实现流程应用场景与优化 源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 深度学习的坐姿检测系统概述 坐姿检测系统利用计算机视觉和深度学习技术,实时监测人体坐姿状态…

作者头像 李华
网站建设 2026/4/15 16:07:19

《把脉行业与技术趋势》-102-直流电与交流电的比较:它们不是“优劣之分”,而是物理规律在不同约束下的最优解。如同河流的“直流”奔涌与“交流”潮汐,各循其道,各尽其用。

直流电(DC)与交流电(AC)是电能传输与利用的两种根本范式。它们不是“优劣之分”,而是物理规律在不同约束下的最优解——如同河流的“直流”奔涌与“交流”潮汐,各循其道,各尽其用。以下以科学本…

作者头像 李华
网站建设 2026/4/13 6:34:53

基于用户行为与电影票房混合权重的协同过滤电影推荐平台开题报告

基于用户行为与电影票房混合权重的协同过滤电影推荐平台开题报告 一、选题背景 随着数字媒体技术的飞速发展与流媒体平台的普及,电影内容呈现爆发式增长态势,全球每年产出数万部各类影片,流媒体平台的影片库规模也持续扩容。据行业数据显示&…

作者头像 李华
网站建设 2026/4/10 15:08:23

最值得推荐的5家跨境营销服务商

一、趋势与价值随着跨境电商竞争加剧,企业不再满足于依赖第三方平台获取流量,而是希望通过自建独立站、搭建营销中台来掌握自主流量和数据资产。独立站市场正在迅速增长,预计到2025年中国独立站规模将达5.5万亿元并占跨境电商B2C市场的41%–5…

作者头像 李华