news 2026/4/16 17:08:30

ACPI!GetPciAddress到ACPI!GetPciAddressWorker完成后会调用state->CompletionRoutine:ACPI!PciConfigSpaceHandler

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ACPI!GetPciAddress到ACPI!GetPciAddressWorker完成后会调用state->CompletionRoutine:ACPI!PciConfigSpaceHandler

ACPI!GetPciAddress到ACPI!GetPciAddressWorker完成后会调用state->CompletionRoutine:ACPI!PciConfigSpaceHandler
1: kd> kc
#
00 ACPI!GetPciAddress
01 ACPI!PciConfigSpaceHandlerWorker
02 ACPI!PciConfigSpaceHandler
03 ACPI!InternalOpRegionHandler
04 ACPI!WriteCookAccess
05 ACPI!RunContext
06 ACPI!InsertReadyQueue
07 ACPI!RestartCtxtPassive
08 ACPI!ACPIWorker
09 nt!PspSystemThreadStartup
0a nt!KiThreadStartup
1: kd> dv
PciObj = 0x899affac
CompletionRoutine = 0xf740d62c
Context = 0x89987378
Bus = 0x899873b0 ""
Slot = 0x899873ac

1: kd> t
eax=899affac ebx=89987378 ecx=899873ac edx=899bf408 esi=f740d62c edi=899bf434
eip=f740ceea esp=f791abe8 ebp=f791ac04 iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000286
ACPI!GetPciAddressWorker:
f740ceea 55 push ebp
1: kd> kc
#
00 ACPI!GetPciAddressWorker
01 ACPI!GetPciAddress
02 ACPI!PciConfigSpaceHandlerWorker
03 ACPI!PciConfigSpaceHandler
04 ACPI!InternalOpRegionHandler
05 ACPI!WriteCookAccess
06 ACPI!RunContext
07 ACPI!InsertReadyQueue
08 ACPI!RestartCtxtPassive
09 ACPI!ACPIWorker
0a nt!PspSystemThreadStartup
0b nt!KiThreadStartup
1: kd> dv
AcpiObject = 0x899affac
Status = 0n0
Result = 0x00000000
Context = 0x899bf408
buffer = unsigned char [64] ""
1: kd> dt GET_ADDRESS_CONTEXT 0x899bf408
ACPI!GET_ADDRESS_CONTEXT
+0x000 PciObject : 0x899affac _NSObj
+0x004 Bus : 0x899873b0 ""
+0x008 Slot : 0x899873ac _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 : 0x89987378 Void


1: kd> u f740d62c
ACPI!PciConfigSpaceHandlerWorker [d:\srv03rtm\base\busdrv\acpi\driver\nt\pciopregion.c @ 544]:
f740d62c 55 push ebp
f740d62d 8bec mov ebp,esp
f740d62f 83ec44 sub esp,44h
f740d632 a1a88c43f7 mov eax,dword ptr [ACPI!__security_cookie (f7438ca8)]
f740d637 53 push ebx
f740d638 8b5d14 mov ebx,dword ptr [ebp+14h]
f740d63b 56 push esi
f740d63c 57 push edi
windbg> .open -a fffffffff740d62c
1: kd> dt PCI_CONFIG_STATE 0x89987378
ACPI!PCI_CONFIG_STATE
+0x000 AccessType : 1
+0x004 OpRegion : 0x899b0b50 _NSObj
+0x008 Address : 0xd8
+0x00c Size : 4
+0x010 Data : 0x8997dc28 -> 0x40e98102
+0x014 Context : 0
+0x018 CompletionHandler : 0xf7420914 Void
+0x01c CompletionContext : 0x8997c0ac Void
+0x020 PciObj : 0x899affac _NSObj
+0x024 ParentObj : (null)
+0x028 CompletionHandlerType : 0
+0x02c Flags : 0x100
+0x030 RunCompletion : 0n0
+0x034 Slot : _PCI_SLOT_NUMBER
+0x038 Bus : 0 ''
+0x039 IsPciDeviceResult : 0 ''

+0x024 CompletionRoutine : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker+0
完成例程会再次进入函数ACPI!PciConfigSpaceHandlerWorker,
再次进入函数ACPI!PciConfigSpaceHandlerWorker,下面的不会运行,
会继续向下运行,因为已经得到了state->Bus和state->Slot。

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);

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

多个企业如何显示在同一张GRS证书上

多个企业在同一张GRS证书上体现,是可以的,但有条件要求。 常见已下几种情况,是否可以呢? 1.我的工厂和我的贸易公司,能不能同时在一张GRS证书上体现? 2.我是贸易公司,我拿货的工厂也没有GRS认证…

作者头像 李华
网站建设 2026/4/16 11:25:18

智慧工地安全帽检测数据集 深度学习框架YOLOV8模型如何训练工地安全帽检测数据集 建立基于深度学习YOLOV8安全帽检测系统

安全帽检测数据集数据集简介 本数据集是一个专门用于安全帽检测 的图像数据集,包含 3,434张已标注的图片,适用于目标检测任务。数据格式为 VOC数据集格式,可直接用于主流深度学习框架(如YOLO、Faster R-CNN等)的训练和…

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

探寻现代标识之美:亚克力门牌的核心优势与工艺解析

在当今商业与公共空间的设计中,标识系统不仅是简单的指引工具,更是品牌形象、空间格调与专业度的直接体现。从企业前台、办公室门牌,到商场导视、医院科室牌,一块精心制作的门牌,往往承载着超越其物理功能的价值。在众…

作者头像 李华
网站建设 2026/4/16 14:27:34

【dz-1011】酒窖存储环境监测与控制系统设计

摘要 在酒类存储领域,酒窖环境参数的稳定对酒品品质与存储安全起着决定性作用。传统酒窖环境管理多依赖人工检查和经验调控,存在数据记录不及时、环境波动难把控、异常响应滞后等问题,难以满足高品质酒类存储的严苛需求。 基于 STM32F103C8…

作者头像 李华
网站建设 2026/4/16 12:46:14

C++ 的核心究竟是什么?学到什么程度才算精通?

C 的核心究竟是什么? 一句话浓缩(2025-2026 社区最常见的几种主流共识版本,按出现频率排序): 最被广泛接受的版本(Bjarne Stroustrup 本人 C Core Guidelines 精神): “零开销抽象 …

作者头像 李华