停止文件系统筛选器驱动程序的问题

时间:2017-05-11 02:17:56

标签: windows driver minifilter

我开发了一个简单的过滤器驱动程序。

司机工作正常。

然后我使用“SC STOP”命令卸载驱动程序。

但这并不奏效,我不得不使用“FLTMC UNLOAD”命令。

我将为我的驱动程序添加几个功能。

“FLTMC UNLOAD”命令对于停止所有驱动程序的功能似乎有点奇怪。 (我认为)

我想用“SC STOP”命令停止驱动程序。

这可能吗?

以下是修改后的问题。

我现在正在使用OSRLoader来加载和卸载驱动程序。

但是,当我第一次开发过滤器驱动程序时,它没有以加载旧驱动程序的方式加载过滤器驱动程序。

FltRegisterFilter()中发生错误。

我认为我的代码没错。

但它没有加载,我将驱动程序类型更改为MiniFilter并且工作正常。

我认为这是FLTMC命令和SC命令之间的区别。

为什么FltRegisterFilter()不能用于传统驱动程序?

1 个答案:

答案 0 :(得分:0)

FltRegisterFilter是一个特定于迷你过滤器的函数。所有Flt * API都是过滤器管理器的一部分,它是在Windows 2000 SP5 plus易拉包IIRC中引入的。它不适用于传统过滤器,因为它不应该 - 按设计。

fltmc unload <driver>是卸载迷你过滤器的首选方法,因为它使您的过滤器有机会拒绝卸载它的卸载回调。如果您正在编写可以卸载的驱动程序,但仅当它当前没有过滤某些内容时,这可能很有用。 sc stop不允许你这种灵活性。