news 2026/7/6 3:51:44

得到节点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/6/29 9:49:28

珲春推荐烤肉哪家无广

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

作者头像 李华
网站建设 2026/7/1 9:00:42

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

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

作者头像 李华
网站建设 2026/7/3 6:24:48

Java分布式系统开发与实践!

我们都知道,目前大型网站跟企业级应用目前的要求都是达到“互联网三高”,这时传统的集中式系统肯定是无法满足基本的需求的,越来越多的企业的系统架构目前都是向着分布式系统的方向演进。分布式系统的特征分布式系统相对于传统的集中式系统来…

作者头像 李华
网站建设 2026/7/4 4:08:09

灵活就业简历制作难?项目导向模板下载,HR一眼认可

不同求职场景,简历误区各不相同?校招应届生分不清实习和校招简历重点,要么堆砌校园经历,要么遗漏实习成果;跨行业转行想突破壁垒,却不会衔接过往经历、突出可迁移技能;职场深耕3-5年&#xff0c…

作者头像 李华
网站建设 2026/6/29 2:24:17

利用Multisite实现WordPress多语言网站

利用WordPress Multisite(多站点)实现多语言网站,核心是将每种语言对应为一个独立子站点,通过统一的网络管理实现多语言布局,同时兼顾站点隔离性与基础的语言互通性。以下是完整、可落地的实操步骤,从开启多站点到SEO优化、功能增…

作者头像 李华
网站建设 2026/6/26 10:24:25

全方位谈判兵法——从底层逻辑到高手实战的20堂必修课

这是一篇基于刘碧荣教授20讲谈判课程录音整理、重构与润色的深度文章。文章剔除了口语赘述,修正了部分听录错误,并对核心知识体系进行了逻辑化的章节重组。 刘碧荣教授亲授:全方位谈判兵法——从底层逻辑到高手实战的20堂必修课 前言&#x…

作者头像 李华