news 2026/4/16 15:00:03

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第一次调用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 [

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

基于 FastAPI + LangGraph + LLM 大语言模型的通用 Agent 多智能体系统架构设计与开发实战、产业应用

《基于 FastAPI + LangGraph + LLM 大语言模型的通用 Agent 多智能体系统架构设计与开发实战、产业应用》完整大纲 文章目录 《基于 FastAPI + LangGraph + LLM 大语言模型的通用 Agent 多智能体系统架构设计与开发实战、产业应用》完整大纲 第一章:引言 - 多智能体系统的时代…

作者头像 李华
网站建设 2026/4/16 9:04:00

实验室装修施工哪家强?

实验室装修施工哪家强?前言实验室装修施工是一个专业性极强的领域,涉及到建筑、安全、环保等多个方面。随着科研和技术的发展,实验室装修施工的要求也越来越高。那么,在众多的实验室装修施工公司中,哪家公司能够脱颖而…

作者头像 李华
网站建设 2026/4/16 9:26:34

好写作AI|数据不会“说话”?让AI教你的图表“讲故事”!

实验台上猛如虎,数据处理原地杵。熬了三天跑出的完美曲线,最后在论文里被描述成:“由图可知,结果显著。” 导师批注:“所以图到底说了什么?请用文字‘翻译’一下!”这大概是理工科同学最深的痛&…

作者头像 李华
网站建设 2026/4/16 9:26:12

基于django和python框架的干部测评系统

目录干部测评系统基于Django与Python框架的设计与实现关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!干部测评系统基于Django与Python框架的设计与实现 干部测评系统是一种用于评估…

作者头像 李华
网站建设 2026/4/16 9:18:46

‌行为经济学:用户情绪如何颠覆AI测试指标?

当经济学遇上测试科学‌ 人工智能(AI)测试历来依赖量化指标——准确率、响应时间、错误率等——这些被视为黄金标准。然而,行为经济学揭示,用户决策并非完全理性,而是受情绪、偏见和情境驱动。例如,Daniel…

作者头像 李华
网站建设 2026/4/11 21:38:06

Linux进程与服务管理

Linux进程与服务管理 文章目录Linux进程与服务管理一、前言二、进程与服务管理2.1 进程的基本概述2.1.1 定义2.1.2 分类2.2 Linux进程相关指令详解2.2.1 查看进程:ps2.2.2 终止进程:kill2.2.3 案例2.3 查看进程树指令2.4 Linux服务器管理之service指令2.…

作者头像 李华