news 2026/7/1 21:21:06

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/7/1 10:31:31

基于spring mvc和mybatis的网上食品零食商城系统视频vue3

目录 系统架构与技术栈核心功能模块技术实现要点数据库设计示例部署与扩展建议 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 系统架构与技术栈 Spring MVC MyBatis 作为后端框架,Vue3 作为…

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

常用的css

js控制样式&#xff1a; //html中&#xff1a;<text class"test_text" :style"{--base_color:currentColor}">测试</text>//data中:currentColor:pink //methods中&#xff1a;this.currentColorred//style中&#xff1a;使用变量取值.test_t…

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

枚举中间

lc lc2964 枚举中间hash class Solution { public: int divisibleTripletCount(vector<int>& nums, int d) { int n nums.size(); if (n < 3) return 0; int ret 0; unordered_map<int, int> hash; hash[nums[0] % d]; // 枚举中间 for (int i 1; i &l…

作者头像 李华
网站建设 2026/6/13 21:48:09

三菱PLC六层电梯控制系统设计含报告程序【程序与文档】(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

三菱PLC六层电梯控制系统设计含报告程序【程序与文档】(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码组态川基于三菱PLC的六层电梯控制系统设计[配套设计报告&#xff0c;程序&#xff0c;组态) 含基于三菱PLC的六层电梯控制…

作者头像 李华
网站建设 2026/6/18 8:52:57

如何通过单北斗GNSS实现高效的变形监测与位移监测?

在当前工程监测与地质灾害预警的背景下&#xff0c;单北斗GNSS技术愈发显得重要。它融合了高精度定位与实时数据传输&#xff0c;为各种监测需求提供了定制化解决方案。单北斗变形监测设备因其使用灵活、维护方便&#xff0c;广泛应用于基础设施建设、水坝监管等领域。同时&…

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

Spring AI Alibaba官方文档下载(V1.1版本)

前言 为了方便大家学习和查阅&#xff0c;我花了几小时从官方文档整理并重新排版了这份资料。为了节省打印成本&#xff0c;特意精简了非核心的 import 语句等冗余代码。内容干货满满&#xff0c;非常适合打印出来随时翻阅。欢迎下载学习&#xff0c;一起在 AI 时代共同进步&a…

作者头像 李华