当前位置: 首页 > news >正文

处理完ACPI!AcpiBuildRunMethodList链表后返回要检查acpi!AcpiBuildQueueList链表不空运行continue继续循环

处理完ACPI!AcpiBuildRunMethodList链表后返回要检查acpi!AcpiBuildQueueList链表不空运行continue继续循环

0: kd> g
Breakpoint 5 hit
eax=00000000 ebx=00000000 ecx=89906e40 edx=00000001 esi=89906e30 edi=80b019f4
eip=f73fb911 esp=f789ef68 ebp=f789ef84 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
ACPI!ACPIBuildProcessGenericList+0x4d:
f73fb911 ff55f4 call dword ptr [ebp-0Ch] ss:0010:f789ef78={ACPI!ACPIBuildProcessGenericComplete (f73fb840)}
0: kd> t
Breakpoint 10 hit
eax=00000000 ebx=00000000 ecx=89906e40 edx=00000001 esi=89906e30 edi=80b019f4
eip=f73fb840 esp=f789ef64 ebp=f789ef84 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
ACPI!ACPIBuildProcessGenericComplete:
f73fb840 55 push ebp
0: kd> kc
#
00 ACPI!ACPIBuildProcessGenericComplete
01 ACPI!ACPIBuildProcessGenericList
02 ACPI!ACPIBuildDeviceDpc
03 nt!KiRetireDpcList
04 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
05 0x0
0: kd> dv
BuildRequest = 0x89906e30
deviceExtension = 0x89906e30
0: kd> gu
Breakpoint 6 hit
eax=00000000 ebx=00000000 ecx=00010001 edx=00000000 esi=89906e30 edi=80b019f4
eip=f73fb914 esp=f789ef6c ebp=f789ef84 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
ACPI!ACPIBuildProcessGenericList+0x50:
f73fb914 85db test ebx,ebx
0: kd> dv tempEntry
tempEntry = 0xf743b870 [ 0xf743b870 - 0xf743b870 ]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0xf743b870)
((ACPI!_LIST_ENTRY *)0xf743b870) : 0xf743b870 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0xf743b870 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0xf743b870 [Type: _LIST_ENTRY *]
0: kd> u 0xf743b870
ACPI!AcpiBuildRunMethodList:
f743b870 70b8 jo ACPI!BuildRequestLookAsideList+0x4a (f743b82a)
f743b872 43 inc ebx
f743b873 f770b8 div eax,dword ptr [eax-48h]
f743b876 43 inc ebx
f743b877 f778b8 idiv eax,dword ptr [eax-48h]
f743b87a 43 inc ebx
f743b87b f778b8 idiv eax,dword ptr [eax-48h]
f743b87e 43 inc ebx


//
// 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!AcpiBuildRunMethodList列表里面已经没有可以处理的!!!

while (currentEntry != ListEntry) { 不成立。

退出函数。


VOID
ACPIBuildDeviceDpc(
IN PKDPC Dpc,
IN PVOID DpcContext,
IN PVOID SystemArgument1,
IN PVOID SystemArgument2
)
{
//
// We actually care what this call returns. The reason we do
// is that we want all of the control methods to be run before
// we do any of the following steps
//
status = ACPIBuildProcessGenericList(
&AcpiBuildRunMethodList,
AcpiBuildRunMethodDispatch
);

//
// We must own the spin lock before we do the following...
//
KeAcquireSpinLockAtDpcLevel( &AcpiBuildQueueLock );

//
// If we got back STATUS_PENDING, that means that there's
// a method queued in the interpreter somewhere. This will
// cause the DPC to (eventually) become scheduled again.
// That means that we don't have to do anything special to
// handle it.
//
if (status == STATUS_PENDING) {

continue;

}

//
// The case that is special is where we are do get STATUS_SUCCESS
// back. This indicates that we've drained the list. The little
// fly in the ointment is that we might have scheduled other
// run requests, but those are stuck in the BuildQueue list. So
// what we need to do here is check to see if the BuildQueue list
// is non-empty and if it is, set the AcpiBuildWorkDone to TRUE
// so that we iterage again (and move the elements to the proper
// list).
//
if (!IsListEmpty( &AcpiBuildQueueList) ) {

AcpiBuildWorkDone = TRUE;
continue;

}

http://www.jsqmd.com/news/257575/

相关文章:

  • UNet++MobileNetv2模型优化,RK3588部署效率飙升300%
  • Angular Interview
  • 第二次运行ACPI!ACPIBuildProcessQueueList函数链表内的buildRequest->TargetListEntry都是ACPI!AcpiBuildRunMethodList
  • CSDN首页发布文章请输入文章标题(5~100个字) 还需输入5个字摘要:会在推荐、列表等场景外露,帮助读者快速了解内容,支持一键将正文前 256 字符键入摘要文本框0 / 256A
  • RDBMS interview questions
  • 攻克低照度检测难题:YOLOv11主干网络增强新方案PE-YOLO详解
  • 精度损失1.6%,速度提升10.3 FPS:YOLOv8稀疏训练+Slim剪枝高效压缩方案
  • 完整教程:【Linux】常用指令
  • Map提升4.89%!YOLOv13融合RepVGG-OREPA与SE注意力的多分支设计
  • Preliminary Design - EM driven VSP restart (VUEDPI-3838)
  • YOLO-World:从入门到实战的多模态目标检测全指南
  • JavaAPI 工具类
  • create_deep_agent vs create_agent 的区别
  • 不要让几十万血汗钱打水漂!河北农村自建房必须要了解的7个问题,不懂真的亏大了! - 苏木2025
  • 基于VUE的高校毕业设计管理系统[VUE]-计算机毕业设计源码+LW文档
  • 变量的定义
  • 南京欧米奇西点西餐学校市场口碑怎么样,学校靠谱排名 - 工业品牌热点
  • 2026年上海优秀的RFID智能标签,RFID服装标签,RFID贴纸厂家实力推荐榜 - 品牌鉴赏师
  • idea生成javadoc文件
  • 2026年国内知名的催化燃烧工厂推荐榜单,滤筒除尘器/除尘器/RTO/活性炭箱/催化燃烧/旋风除尘器,催化燃烧厂商推荐 - 品牌推荐师
  • 2026耳塞品牌权威推荐,国际认证与本土适配双重优势品牌盘点 - 品牌鉴赏师
  • Linux chmod命令
  • 短视频开源源码,js函数柯里化 - 云豹科技
  • 2026年评价高的武汉隐形车衣,武汉汽车车衣,武汉汽车防爆膜旗舰店采购选型榜单 - 品牌鉴赏师
  • 聊聊2026年同步带轮厂家哪家好?盖奇同步带轮口碑出众值得选! - 工业品牌热点
  • 【2026年精选毕业设计:基于Spring Boot的校园失物招领系统的设计与实现(含论文+源码+PPT+开题报告+任务书+答辩讲解)】 - 指南
  • 关于《互联网应用程序个人信息收集使用规定(征求意见稿)》公开征求意见的通知
  • 清远市阳山连山壮族瑶族连南英德连州区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜推荐 - 老周说教育
  • 学习行为数据挖掘与资源推荐系统毕业设计源码(源码+lw+部署文档+讲解等)
  • kubeadm 离线部署 Kubernetes 集群 + 完整测试【20260117】002