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

第一次调用ACPI!ACPIBuildProcessQueueList时ACPI!AcpiBuildDeviceList中项的来源和ACPI!ACPIBuildDeviceRequest函数有关-重要

第一次调用ACPI!ACPIBuildProcessQueueList时ACPI!AcpiBuildDeviceList中项的来源和ACPI!ACPIBuildDeviceRequest函数有关-重要


0: kd> gu
Breakpoint 19 hit
eax=00000000 ebx=ffdff120 ecx=ffdff988 edx=ffdff980 esi=f73fc5b2 edi=ffdff980
eip=f73fc5b2 esp=f789efa0 ebp=f789eff4 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!ACPIBuildDeviceDpc:
f73fc5b2 53              push    ebx
0: kd> kc
 #
00 ACPI!ACPIBuildDeviceDpc
01 nt!KiRetireDpcList
02 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
03 0x0


0: kd> x acpi!AcpiBuildDpcRunning
f743b89e          ACPI!AcpiBuildDpcRunning = 0x00 ''

    if (AcpiBuildDpcRunning) {

        //
        // The DPC is already running, so we need to exit now
        //
        KeReleaseSpinLockFromDpcLevel( &AcpiBuildQueueLock );
        return;

    }

    //
    // Remember that the DPC is now running
    //
    AcpiBuildDpcRunning = TRUE;

    //
    // We must try to do *some* work
    //
    do {

        //
        // Assume that we won't do any work
        //
        AcpiBuildWorkDone = FALSE;

        //
        // If there are items in the Request Queue, then move them to the
        // proper list
        //
        if (!IsListEmpty( &AcpiBuildQueueList ) ) {

            //
            // Sort the list
            //分类一下!!!
            ACPIBuildProcessQueueList();

        }


0: kd> kc
 #
00 ACPI!ACPIBuildProcessQueueList
01 ACPI!ACPIBuildDeviceDpc
02 nt!KiRetireDpcList
03 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
04 0x0

acpi!AcpiBuildQueueList
0: kd> x acpi!AcpiBuildQueueList
f743b890          ACPI!AcpiBuildQueueList = struct _LIST_ENTRY [ 0x89906de0 - 0x89906e30 ]
0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b890))
(*((ACPI!_LIST_ENTRY *)0xf743b890))                 [Type: _LIST_ENTRY]
    [+0x000] Flink            :0x89906de0[Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x89906e30 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906de0)
((ACPI!_LIST_ENTRY *)0x89906de0)                 : 0x89906de0 [Type: _LIST_ENTRY *]    1
    [+0x000] Flink            :0x89996208[Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0xf743b890 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89996208)
((ACPI!_LIST_ENTRY *)0x89996208)                 : 0x89996208 [Type: _LIST_ENTRY *]
    [+0x000] Flink            :0x89986158[Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x89906de0 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89986158)
((ACPI!_LIST_ENTRY *)0x89986158)                 : 0x89986158 [Type: _LIST_ENTRY *]
    [+0x000] Flink            :0x899841d8[Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x89996208 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x899841d8)
((ACPI!_LIST_ENTRY *)0x899841d8)                 : 0x899841d8 [Type: _LIST_ENTRY *]
    [+0x000] Flink            :0x89984188[Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x89986158 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89984188)
((ACPI!_LIST_ENTRY *)0x89984188)                 : 0x89984188 [Type: _LIST_ENTRY *]
    [+0x000] Flink            :0x89984138[Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x899841d8 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89984138)
((ACPI!_LIST_ENTRY *)0x89984138)                 : 0x89984138 [Type: _LIST_ENTRY *]
    [+0x000] Flink            : 0x899c21d8 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x89984188 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x899c21d8)
((ACPI!_LIST_ENTRY *)0x899c21d8)                 : 0x899c21d8 [Type: _LIST_ENTRY *]
    [+0x000] Flink            : 0x899c2188 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x89984138 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x899c2188)
((ACPI!_LIST_ENTRY *)0x899c2188)                 : 0x899c2188 [Type: _LIST_ENTRY *]
    [+0x000] Flink            : 0x899c2138 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x899c21d8 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x899c2138)
((ACPI!_LIST_ENTRY *)0x899c2138)                 : 0x899c2138 [Type: _LIST_ENTRY *]
    [+0x000] Flink            : 0x89996ba0 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x899c2188 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89996ba0)
((ACPI!_LIST_ENTRY *)0x89996ba0)                 : 0x89996ba0 [Type: _LIST_ENTRY *]    10
    [+0x000] Flink            : 0x89996b50 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x899c2138 [Type: _LIST_ENTRY *]

0: kd> t
eax=00000002 ebx=80afae90 ecx=f743b898 edx=ffdff980 esi=f743b898 edi=ffdff980
eip=f73fbad0 esp=f789ef90 ebp=f789eff4 iopl=0         nv up ei ng nz na pe cy
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000287
ACPI!ACPIBuildProcessQueueList:
f73fbad0 56              push    esi
0: kd> kc
 #
00 ACPI!ACPIBuildProcessQueueList
01 ACPI!ACPIBuildDeviceDpc
02 nt!KiRetireDpcList
03 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
04 0x0
0: kd> dv

0: kd> dt ACPI_BUILD_REQUEST 0x89906e30
   +0x000 ListEntry        : _LIST_ENTRY [ 0xf743b890 - 0x89907358 ]
   +0x008 Signature        : 0x5f534750
   +0x00c Flags            : 0x100c
   +0x00c UFlags           : __unnamed
   +0x010 WorkDone         : 3
   +0x014 CurrentWorkDone  : 0
   +0x018 NextWorkDone     : 0
   +0x01c BuildContext     : 0x89981a18 Void
   +0x020 Status           : 0n0
   +0x024 CurrentObject    : (null)
   +0x028 CallBack         : (null)
   +0x02c CallBackContext  : (null)
   +0x030 DeviceRequest    : __unnamed
   +0x030 RunRequest       : __unnamed
   +0x030 SynchronizeRequest : __unnamed
   +0x044 Integer          : 0xf743b870
   +0x044 String           : 0xf743b870  "p???"
   +0x044 TargetListEntry  : 0xf743b870 _LIST_ENTRY [

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

相关文章:

  • 什么是微模块机房?一文看懂其核心组成
  • 基于单片机的密闭容器压力检测系统设计(有完整资料)
  • 2025年8.95%城乡规划生转GIS开发,背后原因揭秘
  • 【2026】 LLM 大模型系统学习指南
  • 微模块机房如何实现智能运维?技术解析来了
  • 新中地学员转行学GIS开发原因盘点(2)
  • 【2026】 LLM 大模型系统学习指南 (2)
  • dot3api.dll文件丢失怎么办? 免费下载方法分享
  • 好写作AI|别让设计说明比作品还抽象!是时候治好你的“文字失语症”了
  • 基于django和python框架的OneStep商城线上商店订单管理系统
  • 十年磨一剑,XSKY试锋芒:看AIMesh如何推翻AI效率头上的“三座大山”
  • 智能场控源码系统,自动响应,7x24小时稳定工作,带完整的部署教程
  • 手把手教你用9款AI写论文工具,效率飙升300%告别拖延
  • Trilium Notes联手cpolar,可以打造一个随时随地管理的知识库
  • 供应链计划系统架构实战(十):回顾与未来展望
  • 当测试AI学会欺骗:图灵测试2.0的伦理困局
  • 工业场景下的微模块机房:边缘算力的可靠载体
  • SELECT valueFROM nls_session_parametersWHERE parameter = ‘NLS_DATE_FORMAT‘;查出来是DD-MON-RR,为什么SELECT
  • 用《孙子兵法》解读AI测试攻防战
  • 基于django和python框架的公交车管理系统
  • 基于django和python框架的在线音乐播放平台
  • 好写作AI|开题不慌,答辩稳了!AI把你的“学术汇演”变成降维打击
  • 基于django和python框架的高校团支部团务管理系统
  • oracle date类型默认to_char会是什么形式
  • VAV1的生物学功能、疾病关联性与靶向治疗策略:聚焦PROTAC技术
  • 好写作AI|别让“无心之抄”毁了你!你的论文需要一台“诚信行车记录仪”
  • 基于django和python框架的安庆旅游推介网站设计
  • 好写作AI|导师的“学术CT机”:这次真的能看清学生论文是怎么“长大”的了
  • 好写作AI|当AI能写论文了,导师该改打什么“分”?评分标准急需一场“大手术”
  • 好写作AI|学了四年“论文写法”,为何下笔依然懵圈?缺一座关键桥梁!