自从 Windows 升级到了 RS1 , WinDBG 就无法进行ACPI 的调试了,主要的现象是各种找不到变量函数等等。经过一番研究,终于摸索出来了在 RS2 上进行ACPI 调试的方法。具体步骤如下:
特别注意,第一次实验的时候务必按照顺序进行,否则很可能需要重头再来!
1. Target端安装 Windows RS2, 用户名为ZTX (请使用这个名称,确保后面的操作有参考作用)
2. Target端进入 Windows后,运行 MSConfig
3. Target端CMD 串口下(Administrator 权限),运行下面的命令要求系统不检查驱动签名
bcdedit.exe -set TESTSIGNING ON
4. Host 端使用 WinDbg 确保这个步骤能连上,如果连不上请检查USB设定
5. Target端进入 Windows/System32 下搜索 “acpi.sys”,会找到很多结果,我们的目标只是 acpi.sys,需要将系统中的这个文件替换为 checked 版本的。通常系统中会有1个以上的ACPI.SYS,一个是原本的驱动,另外是系统缓存出来的,所有的都需要删除
因为系统保护的缘故,删除动作很满烦,具体操作如下:
5.1 选择第一个 ACPI.SYS,打开 Properties –> Security查看 Users, 注意到是没有Modify 的权限的。
5.2 选择 Advanced, 点击 Owner:TrustedInstaller 后面的Change
输入用户名 ZTX
然后使用 edit 按钮,选中 Users 然后再选择 Full Control
之后,你就有权限删除所有的 ACPI.SYS了。然后将 checked 版本的 ACPI.SYS 放置到system32\drivers目录下。
至此就完成了替换,重启 Target端,
重启之后,HOST端的 WinDBG 会出现下面的提示(特别提醒,这里一定要连着WinDBG,否则看到的只能是无尽的BSOD):
请问哪里能弄到Debug/Checked版本的acpi.sys呢
MSDN上应该有下载