卸载Windows驱动程序

前段时间我决定学习如何编写驱动程序。 不幸的是,我没有太多,因为testing的驱动程序,这是非常重要的,你可以卸载它,而不需要重新启动机器。 现在我回到了它,但我无法自己走过去。

现在我想只是为了让问题更直接,你一定想看到这个:

VOID Unload(PDRIVER_Object DriverObject) { DbgPrint("Unload\r\n"); } 

 NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegistryPath) { DbgPrint("Entry\r\n"); pDriverObject->DriverUnload = Unload; return STATUS_SUCCESS; } 

在DbgView中,它会打印“Entry”消息,但卸载驱动程序时,不会打印“卸载”消息。 实际上试图停止驱动程序服务将其状态更改为NOT_STOPPABLE。 然后我必须重新启动,如果我想另一个尝试。 我和Windows 7一起工作,结果也一样,我试图用TESTSIGNING ON来启动,而且不需要信号。 有点奇怪的是,除非我在入口函数中创build设备,否则加载不起作用。 只有这样我才能在\ Driver目录下find我的winobj驱动程序。 我也试过在Win7安装的另一台机器上,但事实certificate本地设置不是问题。 如果你认识到这种内核行为,我真的很想听到它,谢谢。

其实如果知道一些可以加载.sys的程序,然后就可以卸载它,就可以删除一个链接或名称。 源代码不需要,可执行文件应该..或反之亦然..谢谢。

驱动程序开发 – 使用OSR Driver Loader

好的问题是我与/ driver:wdm链接,因为我阅读了一个较老的教程。 现在这是错误的,你只能在传统驱动程序的DriverEntry中使用IoCreateDevice,这意味着正确的选项只是/驱动程序。 对不起,我不明白的I / O管理器的行为,但如果你有同样的问题,只是摆脱那个国旗,它将卸载。