news 2026/7/5 16:09:57

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/6/29 9:20:03

Vue3-013 watch监视 ref 定义的数据

文章目录watch 作用watch 情况一:ref 定义的数据问题:为什么这里再次调用就停止这个函数了?箭头函数watch 情况二:ref 定义的对象数据watch 作用 watch 监视数据的变化,写法vue2与vue3中不同 watch 情况一:ref 定…

作者头像 李华
网站建设 2026/6/28 21:03:53

【dz-1010】基于单片机的药品生产车间环境监测

摘要 随着医药行业的严格规范,药品生产车间的环境参数对药品质量与生产安全至关重要。传统车间环境监测依赖人工巡检和手动记录,存在数据滞后、调控不及时、误差较大等问题,难以满足药品生产的高标准要求。 基于 STM32F103C8T6 单片机的药品…

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

合规领航:下一代数字资产交易所全栈架构设计“黄金法则”大公开

引言:数字资产交易所的“合规突围战”在数字货币狂潮席卷全球的当下,数字资产交易所作为这场金融变革的核心枢纽,正经历着前所未有的挑战与机遇。据统计,全球数字资产交易所数量已突破千家,日交易量峰值超千亿美元&…

作者头像 李华
网站建设 2026/7/4 5:29:02

C++ dll 设计接口时,能否用shared_ptr作为接口返回值?

C DLL 设计接口时,能否用 shared_ptr 作为接口返回值? 最简短的行业共识答案(2025-2026): 强烈不推荐,绝大多数生产级项目都不这么做,几乎所有成熟的 C DLL 接口规范都明确禁止这样做。 为什…

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

没GPU怎么玩SAM 3?图像分割云端镜像2块钱搞定

没GPU怎么玩SAM 3?图像分割云端镜像2块钱搞定 你是不是也刷到过抖音上那种“一键抠图”的神操作?一张照片,点几下鼠标,人物、宠物、商品瞬间被精准分割出来,背景直接换掉——看起来像是PS高手花了几个小时的成果&…

作者头像 李华