1.6 ntoskrnl.nms带来的问题 Q: 系统是英文版XP SP2,以前可以正常使用SoftICE调试srv.sys。最近发现启用NTICE 之后一旦进行SMB通信,就会导致BSOD,即使没有设置过任何断点。 AD: 回忆一下,在最后一次正常使用SoftICE之后这个系统发生过什么变动? QD: 哦,是的,我对该系统进行过升级,具体说就是安装过微软发布的一些安全补丁。等 等,我不可想卸载那堆补丁,实话说吧,我不记得最后一次正常使用SoftICE之后安 装过哪些补丁了,太多了,而这期间我没使用过这个系统。 A: 你是不是设置过使用ntoskrnl.nms,当ntoskrnl.nms与ntoskrnl.exe版本匹配时,这 样做当然没有问题,还很有好处。可当二者版本不匹配时,就会出问题,检查一下。 QD: 用Symbol Retriever试着同步ntoskrnl.exe的符号文件,报"Error - Download"。现 在可以确认ntoskrnl.nms与ntoskrnl.exe版本不匹配了,有什么解决办法吗。 A: 看来某个安全补丁升级了ntoskrnl.exe,而微软没有提供相应的符号文件。既然这样, 你只好放弃ntoskrnl.nms了。修改"%systemroot%\system32\drivers\winice.dat": ;LOAD=x:\nmsout\ntoskrnl.nms ;NTSYMBOLS=ON 注释掉与ntoskrnl.nms相关的行,然后"net start ntice"。 QD: 果然又可以正常使用SoftICE进行调试了。 A: 如果设置过使用ntoskrnl.nms,应该确认后续的安全补丁没有升级ntoskrnl.exe。如 果有升级,应及时同步符号文件得到匹配版本的ntoskrnl.nms。在做不到这一点时, 应停止使用ntoskrnl.nms。