最近,我一直在玩Windows 7中的驱动程序。到目前为止,我已经构建了一个可以与用户模式应用程序通信的驱动程序。 但是,我一直遇到启动和停止驱动程序的问题。 首先,我安装驱动程序并启动它,它工作得很好。我停下来,它也停止了。但是,当我再次启动它时,错误输出错误2代码"无法找到指定的文件"。
为了解决这个问题,我必须卸载驱动程序,然后重新启动。一旦我重新启动,我可以再次安装它,并运行一次,然后整个过程开始。
所以我的问题是如何解决这个问题?我真的很讨厌每次重建和测试我的驱动程序时都要重新启动,所以我想知道我的构建和部署过程中是否有错误。
我正在使用构建过程的标准DDK命令行构建,我正在使用名为OSR Driver Loader的应用程序来加载驱动程序。但是,我也可以使用SC命令行来安装它。
答案 0 :(得分:0)
我解决了。我需要删除我正在创建的符号链接,并删除设备实例。
以下是我在OnUnload函数中的代码:
// this deletes the symbolic link for the driver
IoDeleteSymbolicLink(&deviceLinkUnicodeString);
// this deletes the device
IoDeleteDevice(g_RootkitDevice);
所以完整的,我需要将它作为我的OnUnload函数:
VOID OnUnload(IN PDRIVER_OBJECT DriverObject)
{
// this deletes the symbolic link for the driver
IoDeleteSymbolicLink(&deviceLinkUnicodeString);
// this deletes the device
IoDeleteDevice(g_RootkitDevice);
}