 |
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
|
|
|
 
 
 
|
|
帖子排序:
|
|
|
|
|
帖子发起人: zl000 发起时间: 2008-01-05 12:55 PM 回复: 4
|
zl000
注册: 2007-12-31
发 贴: 3
|
|
|
初涉ACPI, 在XP SP2上替换了checked acpi.sys(443K, 是不是这个?)后,用asl.exe编译并加载AML到注册表,code只简单实现修改内核的某地址处一个字节,重起,用windbg查看发现根本就未修改成功,哪位老大帮忙解释一下啊~~
|
|
|
IP 地址: 已记录
|
报告
|
|
Raymond
注册: 2005-12-19
发 贴: 213
|
|
|
使用ACPIDUMP.EXE或者其他可以DUMP ACPI表的工具(AcpiView、WinACPI)在你的系统中做个DUMP,看DUMP下来的是否是改过的。
|
|
|
IP 地址: 已记录
|
报告
|
|
zl000
注册: 2007-12-31
发 贴: 3
|
|
|
找到一个acpiview,竟然提示说不能load driver,晕~
其它工具网上很难找~~我在注册表里看到确实是添加了相应注册表项了,但是reboot后就是不执行我的代码。
还有没有其它什么原因,麻烦raymond解释一下,这方面资料除了ms官方上一些spec,真是少的可怜啊~
另把我的code贴上来,应该是没有问题吧??
DefinitionBlock("test.aml", "DSDT", 0x02, "TEST", "FORTEST", 0x3000)
{
Method(HOOK)
{
OperationRegion(TEST, SystemMemory, 0x4e4c01, 0x2)
Field(TEST, ByteAcc, NoLock, Preserve)
{
IOCD, 0x2
}
Store(Buffer(){0x90, 0x90}, IOCD)
}
}
|
|
|
IP 地址: 已记录
|
报告
|
|
Raymond
注册: 2005-12-19
发 贴: 213
|
|
|
你在使用WinDBG的!amli调试时,能看到你的这个方法么?按你的设计,谁会调用你的HOOk方法呢?
|
|
|
IP 地址: 已记录
|
报告
|
|
zl000
注册: 2007-12-31
发 贴: 3
|
|
|
看过规范之后有些东西还是不太理解。。。
我又尝试了下面的代码,发现还是不行。不知您能否给出一个可以让人确实看到AML确实被解释执行的代码例子~谢谢!
DefinitionBlock("test.aml", "DSDT", 0x02, "TEST", "FORTEST", 0x3000) { OperationRegion(TEST, SystemMemory, 0x4e4c01, 0x2) Field(TEST, ByteAcc, NoLock, Preserve) { IOCD, 0x2 }
Store(Buffer(){0x90, 0x90}, IOCD)
}
|
|
|
IP 地址: 已记录
|
报告
|
|
|
高端调试 > 软件调试 > 调试ACPI和BIOS > Re: OS不加载自己的AML Code
|
|
|
|