news 2026/5/7 12:20:21

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/18 8:52:53

Java毕设项目推荐-基于springboot安全生产培训管理系统基于springboot的智慧生产安全系统【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/3 20:59:19

基于的网上商城会员积分购物系统vue3

目录系统概述核心功能技术实现扩展性设计项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统概述 基于Vue3的网上商城会员积分购物系统是一个前端解决方案,通过Vue3的响应式特性和组合式API实…

作者头像 李华
网站建设 2026/5/2 10:33:44

《把脉行业与技术趋势》-85-知识和信息的透明,提升的整个系统的能力和性能;知识和信息的垄断,是通过牺牲系统的性能换取专权者的自保;互联网和AI打破了传统的专业保护的壁垒,实现了全人类知识的透明与平权

知识和信息的透明,提升的整个系统的能力和性能; 知识和信息的垄断,是通过牺牲系统的性能换取专权者的自保; 互联网和AI打破了传统的专业保护的壁垒,实现了全人类知识的透明与平权,这种跃迁不仅仅是AI技术…

作者头像 李华
网站建设 2026/5/3 12:24:32

基于Vue的“江城风光”旅游网站的设计与开发7363e(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末

系统程序文件列表 系统功能 用户,景点分类,旅游景点,旅游线路,酒店信息,线路预订,酒店预订,门票预订,旅游新闻,服务指南,周边信息,特色美食 开题报告内容 基于Vue的“江城风光”旅游网站的设计与开发开题报告 一、选题背景与意义 (一)选题背景 随着…

作者头像 李华
网站建设 2026/4/23 16:42:53

Excel字符编码完全指南:LEN、LENB、WIDECHAR、ASC函数深度解析

在处理文本数据时,你是否曾困惑于中英文混合字符的长度计算?本文将揭开Excel字符编码的神秘面纱,带你彻底理解字符与字节的区别。 一、计算机字符编码基础:从位到字符 1. 存储单位:从比特到字节 基础单位定义 比特&…

作者头像 李华