Re: OS不加载自己的AML Code

调试ACPI和BIOS

OS不加载自己的AML Code


zl000 2008-01-05, 12:55 下午
初涉ACPI, 在XP SP2上替换了checked acpi.sys(443K, 是不是这个?)后,用asl.exe编译并加载AML到注册表,code只简单实现修改内核的某地址处一个字节,重起,用windbg查看发现根本就未修改成功,哪位老大帮忙解释一下啊~~

Re: OS不加载自己的AML Code


格蠹老雷 2008-01-05, 23:24 下午
使用ACPIDUMP.EXE或者其他可以DUMP ACPI表的工具(AcpiView、WinACPI)在你的系统中做个DUMP,看DUMP下来的是否是改过的。

Re: OS不加载自己的AML Code


zl000 2008-01-06, 14:23 下午
找到一个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)

}
}

Re: OS不加载自己的AML Code


格蠹老雷 2008-01-08, 12:19 下午
你在使用WinDBG的!amli调试时,能看到你的这个方法么?按你的设计,谁会调用你的HOOk方法呢?

Re: OS不加载自己的AML Code


zl000 2008-01-10, 13:46 下午

看过规范之后有些东西还是不太理解。。。

我又尝试了下面的代码,发现还是不行。不知您能否给出一个可以让人确实看到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)

}

Re: OS不加载自己的AML Code


quanta 2009-01-30, 03:38 上午
应该是你加载方法不对,我弄了很多次都可以的

Re: OS不加载自己的AML Code


炸金花 2010-02-23, 13:51 下午
用RW来看你的东西是不是已经在系统里了

Powered by Community Server Powered by CnForums.Net