news 2026/4/23 12:54:26

ACPI!ACPIBuildProcessRunMethodPhaseRunMethod函数对_SB总线_INT方法的调用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ACPI!ACPIBuildProcessRunMethodPhaseRunMethod函数对_SB总线_INT方法的调用

ACPI!ACPIBuildProcessRunMethodPhaseRunMethod函数对_SB总线_INT方法的调用

//
// Call the function
//
status = (buildFunction)( buildRequest ); 调用下一步:

0: kd> g
Breakpoint 5 hit
eax=00000004 ebx=00000004 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!ACPIBuildProcessRunMethodPhaseCheckBridge (f73fbb44)}
0: kd> t
eax=00000004 ebx=00000004 ecx=89906e40 edx=00000001 esi=89906e30 edi=80b019f4
eip=f73fbb44 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!ACPIBuildProcessRunMethodPhaseCheckBridge:
f73fbb44 55 push ebp
0: kd> kc
#
00 ACPI!ACPIBuildProcessRunMethodPhaseCheckBridge
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


//
// These are the flags that we use in the RunRequest case
//
#define RUN_REQUEST_CHECK_STATUS 0x01
#define RUN_REQUEST_MARK_INI 0x02
#define RUN_REQUEST_RECURSIVE 0x04
#define RUN_REQUEST_CHECK_WAKE_COUNT 0x08
#define RUN_REQUEST_REG_METHOD_ON 0x10
#define RUN_REQUEST_REG_METHOD_OFF 0x20
#define RUN_REQUEST_STOP_AT_BRIDGES 0x40

0: kd> dx -r1 ((ACPI!_ACPI_BUILD_REQUEST *)0x89906e30)
((ACPI!_ACPI_BUILD_REQUEST *)0x89906e30) : 0x89906e30 [Type: _ACPI_BUILD_REQUEST *]
[+0x000] ListEntry [Type: _LIST_ENTRY]
[+0x008] Signature : 0x5f534750 [Type: unsigned long]
[+0x00c] Flags : 0xc [Type: unsigned long] [+0x00c] Flags : 0xc
[+0x00c] UFlags [Type: __unnamed]
[+0x010] WorkDone : 0x1 [Type: unsigned long]
[+0x014] CurrentWorkDone : 0x4 [Type: unsigned long]
[+0x018] NextWorkDone : 0x5 [Type: unsigned long]
[+0x01c] BuildContext : 0x89981a18 [Type: void *]
[+0x020] Status : 0 [Type: long]
[+0x024] CurrentObject : 0x0 [Type: _NSObj *]
[+0x028] CallBack : 0x0 [Type: void (*)(void *,void *,long)]
[+0x02c] CallBackContext : 0x0 [Type: void *]
[+0x030] DeviceRequest [Type: __unnamed]
[+0x030] RunRequest [Type: __unnamed]
[+0x030] SynchronizeRequest [Type: __unnamed]
[+0x044] Integer : 0xf [Type: unsigned long]
[+0x044] String : 0xf : Unable to read memory at Address 0xf [Type: unsigned char *]
[+0x044] TargetListEntry : 0xf [Type: _LIST_ENTRY *]

[+0x00c] Flags : 0xc

#define RUN_REQUEST_RECURSIVE 0x04
#define RUN_REQUEST_CHECK_WAKE_COUNT 0x08

//
// Call the function
//
status = (buildFunction)( buildRequest );

0: kd> g
Breakpoint 5 hit
eax=00000005 ebx=00000005 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!ACPIBuildProcessRunMethodPhaseRunMethod (f73fbcf2)}


0: kd> t
Breakpoint 7 hit
eax=00000005 ebx=00000005 ecx=89906e40 edx=00000001 esi=89906e30 edi=80b019f4
eip=f73fbcf2 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!ACPIBuildProcessRunMethodPhaseRunMethod:
f73fbcf2 55 push ebp
0: kd> kc
#
00 ACPI!ACPIBuildProcessRunMethodPhaseRunMethod
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
nsObj = 0x00000000
status = 0n8
objData = struct _ObjData [2]
numArgs = 0xf73fbcf2
args = 0x89906e30


0: kd> g
Breakpoint 33 hit
eax=899afccc ebx=89981a18 ecx=0041e000 edx=00000000 esi=89906e30 edi=00000000
eip=f7415242 esp=f789ef04 ebp=f789ef60 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!AMLIAsyncEvalObject:
f7415242 55 push ebp
0: kd> kc
#
00 ACPI!AMLIAsyncEvalObject
01 ACPI!ACPIBuildProcessRunMethodPhaseRunMethod
02 ACPI!ACPIBuildProcessGenericList
03 ACPI!ACPIBuildDeviceDpc
04 nt!KiRetireDpcList
05 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
06 0x0
0: kd> dv
pns = 0x899afccc
pdataResult = 0x00000000
icArgs = 0n0
pdataArgs = 0x00000000
pfnAsyncCallBack = 0xf73fa5bc
pvContext = 0x89906e30
pHData = 0x00000008
0: 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
0: 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]
0: 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

Scope (_SB)
{

。。。
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
If (LNotEqual (FLAG, 0x00))
{
Return (Zero)
}

Store (0x01, FLAG)
If (CondRefOf (\_OSI, Local0))
{
If (\_OSI ("Linux"))
{
Store (0x0F00, TOOS)
}
Else
{
If (\_OSI ("Windows 2006"))
{
Store (0x0C00, TOOS)
}
Else
{
If (\_OSI ("Windows 2001.1 SP1"))
{
Store (0x0A00, TOOS)
}
Else
{
If (\_OSI ("Windows 2001.1"))
{
Store (0x0900, TOOS)
}
Else
{
If (\_OSI ("Windows 2001 SP2"))
{
Store (0x0700, TOOS)
}
Else
{
If (\_OSI ("Windows 2001 SP1"))
{
Store (0x0600, TOOS)
}
Else
{
If (\_OSI ("Windows 2001"))
{
Store (0x0500, TOOS)
}
Else
{
If (\_OSI ("Windows 2000"))
{
Store (0x0400, TOOS)
}
Else
{
Store (0xFE00, TOOS)
}
}
}
}
}
}
}
}
}
Else
{
If (CondRefOf (\_OS, Local0))
{
If (STRC (\_OS, "Microsoft Windows NT"))
{
Store (0x0300, TOOS)
}
Else
{
If (STRC (\_OS, "Microsoft WindowsME:Millennium Edition"))
{
Store (0x0200, TOOS)
}
Else
{
If (STRC (\_OS, "Microsoft Windows"))
{
Store (0x0100, TOOS)
}
Else
{
If (STRC (\_OS, "NetWare"))
{
Store (0x0B00, TOOS)
}
Else
{
If (STRC (\_OS, "FreeBSD"))
{
Store (0x1000, TOOS)
}
Else
{
Store (0xFD00, TOOS)
}
}
}
}
}
}
Else
{
Store (0xFF00, TOOS)
}
}

Return (0x00)
}

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

LLM解析电子鼻数据呼吸预警提速

&#x1f4dd; 博客主页&#xff1a;Jax的CSDN主页 LLM赋能电子鼻&#xff1a;呼吸预警分析提速的范式革新目录LLM赋能电子鼻&#xff1a;呼吸预警分析提速的范式革新 引言&#xff1a;呼吸预警的紧迫性与技术瓶颈 维度一&#xff1a;技术应用场景——呼吸预警全流程提速 从诊断…

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

风速发电预测(线性回归模型 、XGBoost模型 、决策树回归模型 、随机森林回归模型 、梯度提升回归模型与LSTM模型对比,多特征输入,单标签输出,可轻易替换为其它时序数据集)

1.前言 1.1.运行效果&#xff1a;风速发电预测&#xff08;线性回归模型 、XGBoost模型 、决策树回归模型 、随机森林回归模型 、梯度提升回归模型与LSTM模型对比&#xff0c;多特征输入&#xff0c;单标签输出&#xff0c;可轻易替换_哔哩哔哩_bilibili 1.2.环境库&#xff…

作者头像 李华
网站建设 2026/3/22 1:11:37

企业级安康旅游网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着旅游业的快速发展&#xff0c;安康地区凭借其独特的自然景观和丰富的文化资源吸引了大量游客。然而&#xff0c;传统的旅游管理模式难以满足现代游客的个性化需求&#xff0c;尤其是在信息查询、行程规划和服务反馈等方面存在效率低下、数据分散等问题。为了提高旅游管…

作者头像 李华
网站建设 2026/4/18 13:23:53

9款免费AI论文生成器实操指南:维普查重一把过不留AIGC痕迹

还在为论文开题、写作、降重、查重而焦虑吗&#xff1f;面对导师的修改意见感到无从下手&#xff1f;担心AI生成的论文被系统检测出来&#xff1f;这篇文章就是为你准备的终极解决方案。我们亲测了市面上9款热门且实用的免费AI论文工具&#xff0c;为你整理出这份手把手的实操指…

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

面向政府与公共机构的数字内容与知识管理平台解决方案

在数字化浪潮推动下&#xff0c;各级政府与公共服务机构面临着内容碎片化、信息共享阻塞与公众服务效率低等核心挑战。政府不仅要公开政策法规、提升服务触达率&#xff0c;还需加强内部协作与知识传承&#xff0c;实现透明、高效、智能化治理。Baklib 数字内容体验云平台为政府…

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

数字孪生项目的外包开发流程

数字孪生&#xff08;Digital Twin&#xff09;外包开发相比传统软件开发更为复杂&#xff0c;因为它涉及物理建模、实时数据集成、仿真算法以及可视化渲染四个维度的深度结合。数字孪生项目的标准外包开发流程通常分为以下六个阶段&#xff1a;1. 需求分析与场景定义这是项目成…

作者头像 李华