news 2026/4/16 11:53:52

ACPIBuildProcessRunMethodPhaseCheckSta函数和ACPIDetectPdoDevices函数都调用了ACPIGetDevicePresenceAsync--有必要吗

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ACPIBuildProcessRunMethodPhaseCheckSta函数和ACPIDetectPdoDevices函数都调用了ACPIGetDevicePresenceAsync--有必要吗

ACPI!ACPIBuildProcessRunMethodPhaseCheckSta函数和ACPI!ACPIDetectPdoDevices函数都调用了ACPIGetDevicePresenceAsync--有必要吗

1: kd> kc
#
00 ACPI!ACPIAmliGetNamedChild
01 ACPI!ACPIGet
02 ACPI!ACPIBuildProcessRunMethodPhaseCheckSta
03 ACPI!ACPIBuildProcessGenericList
04 ACPI!ACPIBuildDeviceDpc
05 nt!KiRetireDpcList
06 nt!KiDispatchInterrupt


NTSTATUS
ACPIBuildProcessRunMethodPhaseCheckSta(
IN PACPI_BUILD_REQUEST BuildRequest
)
{
//
// Do we have to check the device status?
//
if (BuildRequest->RunRequest.Flags & RUN_REQUEST_CHECK_STATUS) {

//
// Get the device status
//
status = ACPIGetDevicePresenceAsync(
deviceExtension,
ACPIBuildCompleteMustSucceed,
BuildRequest,
(PVOID *) &(BuildRequest->Integer),
NULL
);

0: kd> kc
#
00 nt!IoCreateDevice
01 ACPI!ACPIBuildPdo
02 ACPI!ACPIDetectPdoDevices
03 ACPI!ACPIRootIrpQueryBusRelations
04 ACPI!ACPIRootIrpQueryDeviceRelations
05 ACPI!ACPIDispatchIrp
06 nt!IofCallDriver
07 nt!IopSynchronousCall
08 nt!IopQueryDeviceRelations
09 nt!PipEnumerateDevice
0a nt!PipProcessDevNodeTree
0b nt!PipDeviceActionWorker
0c nt!PipRequestDeviceAction
0d nt!IopInitializeBootDrivers
0e nt!IoInitSystem
0f nt!Phase1Initialization
10 nt!PspSystemThreadStartup
11 nt!KiThreadStartup

NTSTATUS
ACPIDetectPdoDevices(
IN PDEVICE_OBJECT DeviceObject,
IN PDEVICE_RELATIONS *DeviceRelations
)
{


//
// Update the current device status
//
status = ACPIGetDevicePresenceSync(
deviceExtension,
(PVOID *) &deviceStatus,
NULL
);

//
// This macro is used to get the device status synchronously
//
#define ACPIGetDevicePresenceSync( \
DeviceExtension, \
Buffer, \
BufferSize \
) \
ACPIGetDevicePresence( \
DeviceExtension, \
GET_PROP_SKIP_CALLBACK, \
NULL, \
NULL, \
Buffer, \
BufferSize \
)

//
// This macro is used to get the device presence
//
#define ACPIGetDevicePresence( \
DeviceExtension, \
Flags, \
CallBack, \
Context, \
Buffer, \
BufferSize \
) \
ACPIGet( \
DeviceExtension, \
PACKED_STA, \
(GET_REQUEST_INTEGER | \
GET_TYPE_INTEGER | \
GET_CONVERT_TO_DEVICE_PRESENCE | \
Flags ), \
NULL, \
0, \
CallBack, \
Context, \
(PVOID *) Buffer, \
(PULONG) BufferSize \
)

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

AI赋能创始人表达:从个人智慧到组织能力的战略跃迁

在信息过载的当下,企业创始人的声音如何被清晰听见?其专业思想如何实现高效、规模化地传递?这已不仅是个人影响力的课题,更是关乎组织在数字经济时代竞争能力的战略命题。 传统模式下,创始人深度参与内容创作与传播面…

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

创始人IP:新质生产力时代,企业的“人格化”护城河

在新质生产力浪潮中,技术迭代加速,产品同质化日趋严重,渠道竞争白热化。许多企业经营者发现,传统的竞争优势壁垒正在被快速消解。当产品、价格、服务乃至商业模式都极易被模仿和追赶时,企业究竟靠什么实现可持续的差异…

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

计算机毕业设计Python深度学习物流网络优化与货运路线规划系统 智慧交通 机器学习 大数据毕设(源码 +LW文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 技术范围:Sprin…

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

高校学生饭卡在线缴费充值综合务系统(编号:9805638)--论文vue3

目录 高校学生饭卡在线缴费充值综合服务系统(编号:9805638)论文摘要系统功能概述技术实现特点用户体验优化安全性与扩展性 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合…

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

高空作业机器人设计

第2章 总体方案确定 2.1 齿轮齿条绕线机构 现有使用较广泛的绕线装置是较大型的绕线机。绕线机,顾名思义是把线状的物体缠绕到特定的工件上的机器。欧美绕线机以其加工精度高、质量稳定而在国际绕线机市场上占有重要地位。 欧美绕线机一般可绕0.01~2mm的线径&#x…

作者头像 李华