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

运行_INT方法之ACPI!RestartCtxtPassive完成后休眠到ACPI!ACPIBuildProcessRunMethodPhaseRecurse

运行_INT方法之ACPI!RestartCtxtPassive完成后休眠到ACPI!ACPIBuildProcessRunMethodPhaseRecurse

THREAD 899a1020 Cid 0004.0008 Teb: 00000000 Win32Thread: 00000000 RUNNING on processor 0
IRP List:
899bf5b0: (0006,0190) Flags: 00000000 Mdl: 00000000
Not impersonating
DeviceMap e10003d8
Owning Process 899a2278 Image: System
Attached Process N/A Image: N/A
Wait Start TickCount 274647546 Ticks: 28 (0:00:00:00.437)
Context Switch Count 9 IdealProcessor: 0
UserTime 00:00:00.000
KernelTime 00:00:00.828
Stack Init f789b000 Current f789a1b8 Base f789b000 Limit f7898000 Call 00000000
Priority 31 BasePriority 8 PriorityDecrement 0 IoPriority 0 PagePriority 0
ChildEBP RetAddr
f789eef8 f73fb914 hal!HalpClockInterrupt+0x15a (FPO: [0,2] TrapFrame @ f789eef8) [d:\srv03rtm\base\hals\halmps\i386\mpclock.asm @ 554]
f789ef84 f73fc619 ACPI!ACPIBuildProcessGenericList+0x50 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c @ 4847]
f789ef9c 80a41432 ACPI!ACPIBuildDeviceDpc+0x67 (FPO: [4,0,0]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c @ 553]
f789eff4 80b00756 nt!KiRetireDpcList+0xd6 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\ke\dpcsup.c @ 1076]
f789eff8 f789a124 nt!KiDispatchInterrupt+0x36 (FPO: [Uses EBP] [0,0,1]) [d:\srv03rtm\base\ntos\ke\i386\ctxswap.asm @ 226]
WARNING: Frame IP not in any known module. Following frames may be wrong.
80b00756 00000000 0xf789a124

THREAD 89981ca0 Cid 0004.0078 Teb: 00000000 Win32Thread: 00000000 RUNNING on processor 1
Not impersonating
DeviceMap e10003d8
Owning Process 899a2278 Image: System
Attached Process N/A Image: N/A
Wait Start TickCount 274647547 Ticks: 27 (0:00:00:00.421)
Context Switch Count 2 IdealProcessor: 1
UserTime 00:00:00.000
KernelTime 00:00:00.000
Stack Init f791b000 Current f791acc0 Base f791b000 Limit f7918000 Call 00000000
Priority 8 BasePriority 8 PriorityDecrement 0 IoPriority 0 PagePriority 0
ChildEBP RetAddr
f791adac 80d391f0 ACPI!ACPIWorker+0xbd (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\worker.c @ 301]
f791addc 80b00d52 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]

1: kd> t
Breakpoint 3 hit
eax=f7420746 ebx=00000000 ecx=89906dc0 edx=00000000 esi=89906dc4 edi=f743b318
eip=f7420746 esp=f791ad68 ebp=f791adac 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!RestartCtxtPassive:
f7420746 55 push ebp
1: kd> kc
#
00 ACPI!RestartCtxtPassive
01 ACPI!ACPIWorker
02 nt!PspSystemThreadStartup
03 nt!KiThreadStartup
1: kd> kv
# ChildEBP RetAddr Args to Child
00 f791ad64 f74133c5 89906dc0 00000000 89981ca0 ACPI!RestartCtxtPassive (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\sched.c @ 376]
01 f791adac 80d391f0 00000000 00000000 00000000 ACPI!ACPIWorker+0xbf (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\worker.c @ 302]
02 f791addc 80b00d52 f7413306 00000000 00000000 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
03 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]


1: kd> x acpi!ACPIWorkQueue
f743b318 ACPI!ACPIWorkQueue = struct _LIST_ENTRY [ 0xf743b318 - 0xf743b318 ]
1: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b318))
(*((ACPI!_LIST_ENTRY *)0xf743b318)) [Type: _LIST_ENTRY]
[+0x000] Flink : 0xf743b318 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0xf743b318 [Type: _LIST_ENTRY *]


1: kd> dv
prest = 0x89906dc0
1: kd> dx -r1 ((ACPI!_restart *)0x89906dc0)
((ACPI!_restart *)0x89906dc0) : 0x89906dc0 [Type: _restart *]
[+0x000] pctxt : 0x8997c000 [Type: _ctxt *]
[+0x004] WorkItem [Type: _WORK_QUEUE_ITEM]
1: kd> dx -r1 ((ACPI!_ctxt *)0x8997c000)
((ACPI!_ctxt *)0x8997c000) : 0x8997c000 [Type: _ctxt *]
[+0x000] dwSig : 0x54585443 [Type: unsigned long]
[+0x004] pbCtxtEnd : 0x8997e000 : 0x54 [Type: unsigned char *]
[+0x008] listCtxt [Type: _List]
[+0x010] listQueue [Type: _List]
[+0x018] pplistCtxtQueue : 0x0 [Type: _List * *]
[+0x01c] plistResources : 0x0 [Type: _List *]
[+0x020] dwfCtxt : 0x120 [Type: unsigned long]
[+0x024] pnsObj : 0x899afccc [Type: _NSObj *]
[+0x028] pnsScope : 0x899afccc [Type: _NSObj *]
[+0x02c] powner : 0x0 [Type: _objowner *]
[+0x030] pcall : 0x0 [Type: _call *]
[+0x034] pnctxt : 0x0 [Type: _nestedctxt *]
[+0x038] dwSyncLevel : 0x0 [Type: unsigned long]
[+0x03c] pbOp : 0x0 [Type: unsigned char *]
[+0x040] Result [Type: _ObjData]
[+0x054] pfnAsyncCallBack : 0xf73fa5bc [Type: void (__cdecl*)(_NSObj *,long,_ObjData *,void *)]
[+0x058] pdataCallBack : 0x0 [Type: _ObjData *]
[+0x05c] pvContext : 0x89906e30 [Type: void *]
[+0x060] Timer [Type: _KTIMER]
[+0x088] Dpc [Type: _KDPC]
[+0x0a8] pheapCurrent : 0x8997c0bc [Type: _heap *]
[+0x0ac] CtxtData [Type: _ctxtdata]
[+0x0bc] LocalHeap [Type: _heap]
1: kd> dx -r1 ((ACPI!_NSObj *)0x899afccc)
((ACPI!_NSObj *)0x899afccc) : 0x899afccc [Type: _NSObj *]
[+0x000] list [Type: _List]
[+0x008] pnsParent : 0x899af0f0 [Type: _NSObj *]
[+0x00c] pnsFirstChild : 0x0 [Type: _NSObj *]
[+0x010] dwNameSeg : 0x494e495f [Type: unsigned long]
[+0x014] hOwner : 0x899af330 [Type: void *]
[+0x018] pnsOwnedNext : 0x899afc88 [Type: _NSObj *]
[+0x01c] ObjData [Type: _ObjData]
[+0x030] Context : 0x0 [Type: void *]
[+0x034] dwRefCount : 0x0 [Type: unsigned long]
1: kd> db 0x899afccc
899afccc 88 fc 9a 89 4c ff 9a 89-f0 f0 9a 89 00 00 00 00 ....L...........
899afcdc 5f 49 4e 49 30 f3 9a 89-88 fc 9a 89 00 00 08 00 _INI0...........
899afcec 00 00 00 00 00 00 00 00-30 02 00 00 10 fd 9a 89 ........0.......
899afcfc 00 00 00 00 00 00 00 00-48 4d 45 54 3c 02 00 00 ........HMET<...
899afd0c 00 f0 9a 89 00 00 00 00-00 00 00 00 00 00 00 00 ................
899afd1c 00 00 00 00 00 a0 0b 92-93 46 4c 41 47 0a 00 a4 .........FLAG...
899afd2c 00 70 0a 01 46 4c 41 47-a0 49 11 5b 12 5c 5f 4f .p..FLAG.I.[.\_O
899afd3c 53 49 60 a0 15 5c 5f 4f-53 49 0d 4c 69 6e 75 78 SI`..\_OSI.Linux
1: kd> db 0x899af0f0
899af0f0 ac f0 9a 89 34 f1 9a 89-24 f0 9a 89 74 f4 9a 89 ....4...$...t...
899af100 5f 53 42 5f 00 00 00 00-00 00 00 00 00 00 00 00 _SB_............
899af110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899af120 18 1a 98 89 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...
899af130 00 f0 9a 89 f0 f0 9a 89-78 f1 9a 89 24 f0 9a 89 ........x...$...
899af140 00 00 00 00 5f 53 49 5f-00 00 00 00 00 00 00 00 ...._SI_........
899af150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899af160 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
1: kd> dx -r1 (*((ACPI!_heap *)0x8997c0bc))
(*((ACPI!_heap *)0x8997c0bc)) [Type: _heap]
[+0x000] dwSig : 0x50414548 [Type: unsigned long]
[+0x004] pbHeapEnd : 0x8997df34 : 0x43 [Type: unsigned char *]
[+0x008] pheapHead : 0x8997c0bc [Type: _heap *]
[+0x00c] pheapNext : 0x0 [Type: _heap *]
[+0x010] pbHeapTop : 0x8997c0d4 : 0x0 [Type: unsigned char *]
[+0x014] plistFreeHeap : 0x0 [Type: _List *]
[+0x018] Heap [Type: _heapobjhdr]
1: kd> dt framehdr 0x8997df34
ACPI!FRAMEHDR
+0x000 dwSig : 0x4c4c4143
+0x004 dwLen : 0xcc
+0x008 dwfFrame : 2
+0x00c pfnParse : 0xf7427709 long ACPI!ParseCall+0


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

rc = pfh->pfnParse(pctxt, pfh, rc);
if ((rc == AMLISTA_PENDING) || (rc == AMLISTA_DONE))
{
break;
}
}

//
// Get the scheduler lock, and clear the running flag.
//
AcquireMutex(&gReadyQueue.mutCtxtQ);

跳出上面的while循环:

1: kd> g
Breakpoint 11 hit
eax=00000001 ebx=f743a948 ecx=8997c000 edx=8997c000 esi=8997c000 edi=8997df34
eip=f741d852 esp=f791ad04 ebp=f791ad1c iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!RunContext+0x142:
f741d852 e83bceffff call ACPI!AcquireMutex (f741a692)
1: kd> dv
pctxt = 0x00000000
pctxtSave = 0x00000000
pkthSave = 0x00000000
rc = 0n0

1: kd> g
Breakpoint 31 hit
eax=89906e40 ebx=899afccc ecx=00000000 edx=00000006 esi=8997c000 edi=89906e30
eip=f73fa546 esp=f791acb4 ebp=f791acc0 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!ACPIBuildCompleteCommon:
f73fa546 55 push ebp
1: kd> x acpi!AcpiBuildDpcRunning
f743b89e ACPI!AcpiBuildDpcRunning = 0x01 ''

(WorkItem->WorkerRoutine)(WorkItem->Parameter); 返回到这里。准备休眠。
if (KeGetCurrentIrql() != 0) {

1: kd> t
eax=f791ad7c ebx=00000000 ecx=00570002 edx=00560001 esi=89906dc4 edi=f743b318
eip=80a35512 esp=f791ad4c ebp=f791adac iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000286
nt!KeWaitForMultipleObjects:
80a35512 55 push ebp
1: kd> kc
#
00 nt!KeWaitForMultipleObjects
01 ACPI!ACPIWorker
02 nt!PspSystemThreadStartup
03 nt!KiThreadStartup

0: kd> !THREAD 89981ca0
THREAD 89981ca0 Cid 0004.0078 Teb: 00000000 Win32Thread: 00000000 WAIT: (Executive) KernelMode Non-Alertable
f743b330 NotificationEvent
f743b320 NotificationEvent
Not impersonating
DeviceMap e10003d8
Owning Process 899a2278 Image: System
Attached Process N/A Image: N/A
Wait Start TickCount 274647592 Ticks: 2 (0:00:00:00.031)
Context Switch Count 2 IdealProcessor: 1
UserTime 00:00:00.000
KernelTime 00:00:00.156
Stack Init f791b000 Current f791acc0 Base f791b000 Limit f7918000 Call 00000000
Priority 8 BasePriority 8 PriorityDecrement 0 IoPriority 0 PagePriority 0
ChildEBP RetAddr Args to Child
f791acd8 80a440eb f7737120 89981ca0 89981d00 nt!KiSwapContext+0x26 (FPO: [Uses EBP] [0,0,4]) [d:\srv03rtm\base\ntos\ke\i386\ctxswap.asm @ 139]
f791ad10 80a358c7 f743b318 89906dc4 00000000 nt!KiSwapThread+0x627 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\ke\thredsup.c @ 2000]
f791ad48 f7413349 00000002 f791ad7c 00000001 nt!KeWaitForMultipleObjects+0x3b5 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ke\wait.c @ 816]
f791adac 80d391f0 00000000 00000000 00000000 ACPI!ACPIWorker+0x43 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\worker.c @ 259]
f791addc 80b00d52 f7413306 00000000 00000000 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]


0: kd> kc
#
00 ACPI!ACPIBuildProcessRunMethodPhaseRecurse
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

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

相关文章:

  • 2026 年 1 月紫外线消毒设备厂家推荐榜单:涵盖动态/静态消毒机、消毒车、灯架及杀菌系统,专业高效灭菌方案精选 - 企业推荐官【官方】
  • 2026年1月紫外线灯管厂家推荐排行榜,UV灯管/紫外线杀菌灯管/UV LED/光氢灯等全系列产品深度解析与选购指南 - 企业推荐官【官方】
  • 好写作AI|别让论文压垮你的CPU!AI“脚手架”正在升级你的思考系统
  • 好写作AI|别让AI当“学术爹妈”!找到依赖与自主的黄金分割点
  • 23.C++进阶:二叉树OJ|二叉树创建字符串|最近公共祖先|搜索树与双向链表|前中序构建二叉树|二叉树的非递归遍历
  • PW6606芯片5V,9V,12V,15V,20V的PD快充协议诱骗芯片
  • C4D 建模 | 大屏设计 | 交互设计:兰亭妙微 UI 设计,让智慧园区管理 “可视可控”
  • 上海GEO优化公司哪家专业(技术实力对比/服务案例/选择标准) - 品牌排行榜
  • 2026一站式AI智能写作软件推荐:办公写作、润色校对、会议纪要、公文写作 - 深度智识库
  • centos7如何安装mysql8.0.44及相关配置
  • 好写作AI|学霸更牛,学渣逆袭?揭秘AI论文辅助的“马太效应”真相
  • linux数据库备份shell及定时任务crontab时间格式
  • 好写作AI|你的大脑需要“操作系统升级”:AI如何让你学会“思考自己的思考”
  • 东北学历提升好去处:2026年口碑机构精选,专升本报名/国家开放大学招生/学历提升/自考培训,学历提升学校推荐榜单 - 品牌推荐师
  • 好写作AI|没人明说的“学术潜规则”,正在被AI悄悄翻译给你
  • 如何让大模型真正“入场”干活?7城联动,获取AI落地的一线实战解法
  • 德永信集团:以“专数智”赋能注册代办与财税服务,助力企业数字化转型
  • 专业的采购管理系统推荐:智能寻源+供应商协同(千企验证) - 品牌排行榜
  • 2026实验室电加热炉厂家权威推荐榜单:导热油电加热炉/工业电加热炉/电加热炉/管式加热炉/管式电加热炉源头厂家精选。 - 品牌推荐官
  • 2026年振动筛实力厂家推荐榜:新乡华恒机械,矿用/不锈钢/直线/超声波/轻型/长方形振动筛全系供应 - 品牌推荐官
  • CNAS软件检测实验室认可,一次完整的方法验证过程是怎样的?
  • 毕业设计定制作品---【芳心科技】F. 智能声波美肤调控仪
  • Docker部署
  • 毕业设计定制作品---【芳心科技】F. 中频理疗仪PCB
  • 强烈安利8个AI论文平台,自考学生轻松搞定毕业论文!
  • 2026年 微型热电制冷器厂家推荐排行榜:TEC制冷模组、半导体制冷片、无振动环保制冷技术深度解析与选购指南 - 品牌企业推荐师(官方)
  • 2026年振动传感器国产标杆企业推荐:建大仁科领航行业新标杆 - 深度智识库
  • AI编程新风口:LangGraph StateGraph超详细教程,让小白也能优雅管理AI工作流!
  • 第十届遥感技术与应用国际会议(ICRSTA 2026)
  • JBoltAI V4:以体系化能力重塑企业数智化转型路径