news 2026/6/15 20:02:21

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/15 15:14:03

基于PLC的生产线搬运机器人的机械手控制系统【程序与文档】(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于PLC的生产线搬运机器人的机械手控制系统【程序与文档】(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 本次设计主要采用的是顺序控制的思路,系统在确认好上一步完成的基础上再进入下一步,然后逐步…

作者头像 李华
网站建设 2026/6/15 16:40:12

AI科学家Kosmos:数小时完成数月科研,引发行业热议

人工智能能够处理大量数据,但它能做科学吗?一种AI科学家可以独立工作数小时,完成人类需要数月才能完成的研究,并且据其创造者称,已经在科学领域做出了多项“新颖贡献”,但其他人对此则更加怀疑。 该系统名…

作者头像 李华
网站建设 2026/6/15 19:58:51

电梯升降的PLC控制

3可编程控制器的机型选择 3.1可编程控制器控制系统的I/O点数估算 3.1.1控制电磁阀等所需的I/O点数 有电磁阀的动作原理可知,一个单线圈电磁阀用可编程控制器时需两个输入及一个输出;一个双线圈电磁阀需三个输入及两个输出;一个比例式电磁阀需…

作者头像 李华
网站建设 2026/6/15 19:45:38

Java计算机毕设之基于springboot的智能果园数字化管理领航系统(完整前后端代码+说明文档+LW,调试定制等)

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

作者头像 李华
网站建设 2026/6/15 16:04:29

基于SVPWM调制的三相T型三电平并网逆变器Simulink模型

调制方法为SVPWM的三相T型三电平并网逆变器simulink模型。 光伏组件也是自己搭建的数学模型,不是simulink库里的模块;前级是boost电路,通过扰动观测法追踪光伏组件的最大功率点,并控制输出电压的大小;后级是T型三电平逆…

作者头像 李华