news 2026/6/9 20:58:06

ACPI断点源代码版--server03调试指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ACPI断点源代码版--server03调试指南

ACPI断点源代码版


NTSTATUS LOCAL RunContext(PCTXT pctxt)
{

while (!IsStackEmpty(pctxt))
{
CHKDEBUGGERREQ();
pfh = (PFRAMEHDR)pctxt->LocalHeap.pbHeapEnd;
ASSERT(pfh->pfnParse != NULL);

rc = pfh->pfnParse(pctxt, pfh, rc); 断点1:ACPI!RunContext+0x11f
if ((rc == AMLISTA_PENDING) || (rc == AMLISTA_DONE))
{
break;
}
}

else
{
ReleaseMutex(&gReadyQueue.mutCtxtQ);
if ((rc == STATUS_SUCCESS) && (pctxt->pdataCallBack != NULL))
{
rc = DupObjData(gpheapGlobal, pctxt->pdataCallBack, &pctxt->Result);
}

if (pctxt->dwfCtxt & CTXTF_NEED_CALLBACK)
{
AsyncCallBack(pctxt, rc); 断点2:ACPI!RunContext+0x197

VOID
EXPORT
ACPIGetWorkerForInteger(
IN PNSOBJ AcpiObject,
IN NTSTATUS Status,
IN POBJDATA Result,
IN PVOID Context
)
{

status = ACPIGetConvertToDevicePresence(
request->DeviceExtension,
Status,
Result,
request->Flags,
request->Buffer,
request->BufferSize
); ACPI!ACPIGetWorkerForInteger+0x70


NTSTATUS
ACPIBuildProcessGenericList(
IN PLIST_ENTRY ListEntry,
IN PACPI_BUILD_FUNCTION *DispatchTable
)
{


//
// Call the function
//
status = (buildFunction)( buildRequest );ACPI!ACPIBuildProcessGenericList+0x4d

....

//
// If we have completed the request, then we should look at the
// at the next request, otherwise, we need to look at the current
// request again
if ( workDone == WORK_DONE_COMPLETE || workDone == WORK_DONE_FAILURE) {

currentEntry = tempEntry;

} ACPI!ACPIBuildProcessGenericList+0x50


VOID LOCAL DispatchCtxtQueue(PCTXTQ pctxtq)
{

while ((plist = ListRemoveHead(&pctxtq->plistCtxtQ)) != NULL)
{
pctxt = CONTAINING_RECORD(plist, CTXT, listQueue);

ASSERT(pctxt->pplistCtxtQueue == &pctxtq->plistCtxtQ);

pctxt->pplistCtxtQueue = NULL;
pctxt->dwfCtxt &= ~CTXTF_IN_READYQ;
RunContext(pctxt); ACPI!DispatchCtxtQueue+0xaf
}

VOID
ACPIWorker(
IN PVOID StartContext
)
{

(WorkItem->WorkerRoutine)(WorkItem->Parameter); ACPI!ACPIWorker+0xbd


NTSTATUS
ACPIBuildProcessRunMethodPhaseRecurse(
IN PACPI_BUILD_REQUEST BuildRequest
)
{

//
// Make a request to run the control method on this child
//
status = ACPIBuildRunMethodRequest(
childExtension,
NULL,
NULL,
BuildRequest->RunRequest.ControlMethodName,
BuildRequest->RunRequest.Flags,
FALSE
); ACPI!ACPIBuildProcessRunMethodPhaseRecurse+0x58

bp ACPI!ACPIBuildProcessRunMethodPhaseCheckSta
bp ACPI!RunContext
bp ACPI!ACPIGetConvertToDevicePresence
bp ACPI!Return
bp ACPI!ParseCall
bp ACPI!ACPIBuildRunMethodRequest

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

005JX乘客电梯的PLC控制

第三章 课题任务的分析 3.1 电梯控制方法的分析 随着科学技术的发展、近年来,我国的电梯生产技术得到了迅速发展。目前电梯控制系统主要有三种控制方式:继电路控制系统(“早期安装的电梯多位继电器控制系统)、PLC控制系统、微机控制系统。继电器控制系统…

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

救命神器8个AI论文平台,本科生毕业论文轻松搞定!

救命神器8个AI论文平台,本科生毕业论文轻松搞定! 论文写作的救星,AI 工具如何改变你的学习方式 在当今信息爆炸的时代,学术写作已成为本科生必须面对的一项挑战。无论是课程作业还是毕业论文,都需要大量的时间、精力和…

作者头像 李华
网站建设 2026/6/6 20:07:51

Type-C 140W一拖二,双接EPR扩展功率分配

在笔记本、平板、智能手机成为生活刚需的今天,“充电焦虑” 已成为用户普遍痛点:传统单口线材无法满足多设备并行需求,普通一拖二线材又深陷功率分配失衡、快充效率打折的瓶颈。在此背景下,支持 USB PD3.1 协议的 140W 一拖二快充…

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

今天面试招了个18K的人,从腾讯出来的果然都有两把刷子···

公司前段时间缺人,也面了不少测试,前面一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在15-20k,面试的人很多,但平均水平很让人失望。看简历很多都是4年工作经验,但面试中,不…

作者头像 李华
网站建设 2026/6/5 9:39:43

直接上干货!今天咱们聊聊怎么用MATLAB把机械臂玩出花。这玩意儿可不是只能画个三维模型装逼,从底层运动学计算到实时控制都能给你整明白了

Matlab机械臂综合仿真平台,包含运动学、动力学和控制。 MATLAB机器人仿真正逆运动学simulink轨迹规划 机械臂动力学控制等 gui控制仿真平台PUMA机器人 robotics toolbox 先甩个正运动学的代码镇楼: robot seriallink([...Revolute(d, 0.67, a, 0, alp…

作者头像 李华
网站建设 2026/6/8 3:26:43

基于集成模型的Bagging数据回归预测

基于集成模型的Bagging的数据回归预测 matlab代码 大家好!今天我想和大家分享一下关于基于集成模型的Bagging方法在回归预测中的应用。虽然这个主题可能听起来有点专业,但我会尽量用通俗易懂的方式和大家交流,同时穿插一些代码和实际案例&…

作者头像 李华