|
|
|
|
|
|
|
调试ACPI和BIOS
帖子发起人: zl000 发起时间: 2008-01-05 12:55 下午 回复: 6
|
帖子排序:
|
|
|
|
2008-01-05, 12:55 下午
|
zl000
注册: 2007-12-31
发 贴: 3
|
|
|
初涉ACPI, 在XP SP2上替换了checked acpi.sys(443K, 是不是这个?)后,用asl.exe编译并加载AML到注册表,code只简单实现修改内核的某地址处一个字节,重起,用windbg查看发现根本就未修改成功,哪位老大帮忙解释一下啊~~
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2008-01-05, 23:24 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
|
|
使用ACPIDUMP.EXE或者其他可以DUMP ACPI表的工具(AcpiView、WinACPI)在你的系统中做个DUMP,看DUMP下来的是否是改过的。
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2008-01-06, 14:23 下午
|
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 地址: 已记录
|
报告
|
|
|
|
2008-01-08, 12:19 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
|
|
你在使用WinDBG的!amli调试时,能看到你的这个方法么?按你的设计,谁会调用你的HOOk方法呢?
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2008-01-10, 13:46 下午
|
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 地址: 已记录
|
报告
|
|
|
|
2009-01-30, 03:38 上午
|
quanta
注册: 2008-12-14
q
发 贴: 6
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2010-02-23, 13:51 下午
|
炸金花
注册: 2010-02-12
发 贴: 5
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » 调试ACPI和BIOS » Re: OS不加载自己的AML Code
|
|
|
|
|
|