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/5/5 21:40:03

【时间之外】AI招聘这么干行不行?

目录 一、背景 二、目标 三、策略 1. 岗位与画像 2. 多元化渠道 3. 构建AI评估体系 4. 实施AI招聘流程 5. 持续优化 四、实施步骤 1. 准备 2. 策略 3. 执行 4. 优化 五、案例 六、总结与展望 一、背景 随着人工智能(AI)技术的飞速发展&am…

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

Java毕设选题推荐:基于springboot的智慧生产安全系统安全巡检系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

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

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

Java毕设项目推荐-基于SpringBoot+Vue的植物健康系统管理系统设计与实现基于springboot的植物养护系统【附源码+文档,调试定制服务】

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

作者头像 李华