RW 搜索ACPI协议RSD PTR表

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处的内容:

扫描二维码关注公众号,回复: 8841869 查看本文章

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

发布了233 篇原创文章 · 获赞 106 · 访问量 56万+

猜你喜欢

转载自blog.csdn.net/lixiangminghate/article/details/102615344