windows - 较低的过滤器驱动程序

标签 windows driver filter-driver

如何安装过滤驱动程序作为较低的过滤驱动程序? DDK的所有样本都是上层过滤驱动。 除了使用 INF 文件来完成这项工作之外,还有什么方法吗? 我知道较低的过滤器驱动程序位于 FDO 下方和 BDO 的顶部,但是如果有多个较低的过滤器驱动程序,它们是如何排序的?我可以将我的驱动程序放在这个堆栈的特定位置吗?

最佳答案

How can I install a filter driver as lower filter driver?

上层和下层过滤器驱动程序的安装方式几乎相同——您实际上不需要 INF——您只需在注册表中设置值即可。 当然,这取决于您要安装哪种类型的过滤器驱动程序,但作为示例,如果我想设置较低的磁盘类过滤器驱动程序,我打开 Regedit 并导航到以下键:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}

在这里,您应该看到一个名为 UpperFilters 的字符串值,其中包含 PartMgr。如果您想添加一个 Lower Filter,只需创建一个 LowerFilters 值并将您的驱动程序键的名称设置为它。键名中的 GUID 很糟糕,但是如果您扫描 Class 键,您会看到很多以 GUID 命名的键 - 每个键的默认值都包含键代表什么设备的简短描述。

与 PartMgr 和所有其他驱动程序一样,您需要在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下使用所有适当的配置值创建您的驱动程序 key 。如果您不确定您的驱动程序的值,将整个 HKLM\SYSTEM 键转储到一个文件,正常安装您的驱动程序,对整个 HKLM\SYSTEM 键进行第二次转储并比较转储以查看放置的值哪里。

Can I put my driver at a specific location of this stack?

任何人告诉您的相反,答案是否定的。人们有时认为,当 UpperFilters 和 LowerFilters 注册表值中列出多个驱动程序时,首先加载此列表中的第一个。我什至亲眼目睹了这变成了“登记大战”,司机们不断地为他们在名单中的位置而战。这是无稽之谈,您应该设计您的驱动程序以应对出现在您上方或下方的任何其他驱动程序。

关于windows - 较低的过滤器驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8984658/

相关文章:

windows - 如何解决Github for Windows 中的 "Wall of Pink"?

windows - 为什么我的 Delphi 应用程序说存在一个不存在的文件?

c++ - 关闭控制台而不退出

python - 特定 python 应用程序的安全串行端口

linux - 是否可以将 2 个内核模块链接到同一个/dev/device?

c - 处理 IRP_MJ_SHUTDOWN

windows - 删除文件名开头至 "_"

driver - 逆向工程 Amiga 监控文件

c - 过滤器驱动程序中文件删除时生成的 IRP 消息是什么?

c# - 特定文件类型的文件系统过滤器驱动程序