news 2026/4/3 4:10:47

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/3/28 7:30:15

【CTF Writeup】Crypto题型之经典RSA算法破解全解析

引言 一、RSA基础原理回顾 RSA加密流程&#xff1a; 生成两个大质数p、q&#xff0c;计算n pq&#xff0c;φ(n) (p-1)(q-1)&#xff1b; 选择公钥e&#xff0c;满足1 < e < φ(n)且gcd(e, φ(n)) 1&#xff1b; 计算私钥d&#xff0c;满足e*d ≡ 1 mod φ(n)&…

作者头像 李华
网站建设 2026/3/31 14:51:42

护网行动备战实战宝典!个人备赛到团队攻坚全攻略

护网行动备战与实战宝典&#xff1a;从个人备赛到团队攻坚的全攻略 近年来&#xff0c;护网行动已从“阶段性演练”升级为关键信息基础设施安全防护的“常态化考核”&#xff0c;对抗强度、攻击战术复杂度持续攀升——红队不仅模拟常规Web攻击&#xff0c;更频繁运用APT组织的…

作者头像 李华
网站建设 2026/3/31 10:21:12

Linux 之 【日志】(实现一个打印日志的类)

目录 1.日志的简介 1.1日志的概念 1.2日志的常见格式 2.实现日志类 包含所需头文件&#xff0c;定义所需宏 类成员 levelToString operator() printLog printOneFile&printClassFile 完整呈现 1.日志的简介 1.1日志的概念 日志是软件运行过程中产生的带时间戳的…

作者头像 李华
网站建设 2026/3/31 7:38:43

ONNX模型转换避坑技巧

&#x1f493; 博客主页&#xff1a;借口的CSDN主页 ⏩ 文章专栏&#xff1a;《热点资讯》 ONNX模型转换避坑指南&#xff1a;从精度损失到部署瓶颈的实战解析 目录 ONNX模型转换避坑指南&#xff1a;从精度损失到部署瓶颈的实战解析 引言 核心避坑技巧 精度损失陷阱&#xff1…

作者头像 李华
网站建设 2026/3/31 9:31:07

【CTF Writeup】Web题型之SQL注入绕WAF实战解析

前言 在CTF比赛中&#xff0c;Web题型始终占据半壁江山&#xff0c;而SQL注入作为经典考点&#xff0c;常搭配WAF&#xff08;Web应用防火墙&#xff09;增加难度。本文将结合某次CTF线下赛的一道SQL注入真题&#xff0c;详细拆解绕WAF的思路、步骤及实战技巧&#xff0c;适合…

作者头像 李华