我开发了一个简单的过滤器驱动程序。
司机工作正常。
然后我使用“SC STOP”命令卸载驱动程序。
但这并不奏效,我不得不使用“FLTMC UNLOAD”命令。
我将为我的驱动程序添加几个功能。
“FLTMC UNLOAD”命令对于停止所有驱动程序的功能似乎有点奇怪。 (我认为)
我想用“SC STOP”命令停止驱动程序。
这可能吗?
我现在正在使用OSRLoader来加载和卸载驱动程序。
但是,当我第一次开发过滤器驱动程序时,它没有以加载旧驱动程序的方式加载过滤器驱动程序。
FltRegisterFilter()中发生错误。
我认为我的代码没错。
但它没有加载,我将驱动程序类型更改为MiniFilter并且工作正常。
我认为这是FLTMC命令和SC命令之间的区别。
为什么FltRegisterFilter()不能用于传统驱动程序?
答案 0 :(得分:0)
FltRegisterFilter是一个特定于迷你过滤器的函数。所有Flt * API都是过滤器管理器的一部分,它是在Windows 2000 SP5 plus易拉包IIRC中引入的。它不适用于传统过滤器,因为它不应该 - 按设计。
fltmc unload <driver>
是卸载迷你过滤器的首选方法,因为它使您的过滤器有机会拒绝卸载它的卸载回调。如果您正在编写可以卸载的驱动程序,但仅当它当前没有过滤某些内容时,这可能很有用。 sc stop
不允许你这种灵活性。