RW 搜索ACPI协议RSD PTR表

本文介绍如何使用Read&WriteUtility工具定位并读取系统中难以找到的ACPI表,如RSDP和RSDT,通过内存搜索技巧,帮助理解和学习ACPI协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Read&Write Utility可以读取系统中各种ACPI表,下图是我的ThinkPad的ACPI表:

    通过这张图,可以说,RW读全了所有ACPI表。但是,有些品牌笔记本的实现,比如TOSHIBA/Dynabook,在RW的ACPI Table标签页上找不到RSDP结构和RSDT表!对于新人学习ACPI协议很不方便!经过一番尝试,笔者发现可以通过搜索内存的方式,定位到RSDP和RSDT。

    首先定位RSD PTR(即RSDP结构),根据ACPI协议,该结构中包含XSDT Base Address和RSDT Base Address。点击"Memory dump"按钮----在Memory对话框中点击Find----在Find pattern编辑框中输入 RSD PTR,同时勾选ASCII复选框:

当然,为了缩小范围,可以在Start Address和End Address中填写起始和终止地址。一般这个地址可以参考XSDT Table中Entry0起始地址和最后一个EntryN结束地址,比如我的XSDT Table中Entry0的地址为0x97FF6000,RSD PTR一般在这个地址之前,所以Start Address取0x97000000。Entry22的起始地址为0x97F57000,所以End Address取0x98000000:

搜索结果到两串"RSD PTR"开头的字符串,第二串所在的地址是RSD PTR结构所在内存,即图中地址Address=0x097FFE014。根据ACPI协议,从这个地址起,偏移0x10处是RSDT Base Address,偏移0x18是XSDT Base Address:

可以从这两处地址读取内容,跟RSDP/XSDT Table内容对比,此处以XSDT Table为例,比较ACPI Table中XSDT和Memory 0x0097FD1188处的内容:

以上步骤基于x64位系统,x86系统同样步骤也可以定位

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值