windows - NDIS 5/6 中间过滤器驱动程序

标签 windows driver ndis

背景:我需要创建一个 NDIS 过滤器中间驱动程序。该驱动程序将在收集元数据(主要是计时信息)的同时传递所有流量。驱动程序将通过插入自己的包含元数据的数据包并将其向上传递到堆栈来将此信息导出到用户应用程序。

我的问题是关于 NDIS 版本的。最终,我将不得不为 Windows XP 和 7 编写一个驱动程序。但是目前,我只会实现其中一个作为概念/原型(prototype)证明。我知道在 NDIS 6 中,他们将过滤器功能从通用中间驱动程序中拆分为单独的驱动程序类型(轻量级过滤器),以简化过滤器驱动程序的创建。 Microsoft 在 DDK 中为 NDIS 5 和 6 提供了直通筛选器驱动程序的示例。我一直在查看这些示例,NDIS 6 LWF 只是看起来更简单一些(尽管不可否认,我对 Windows 驱动程序开发仍然是新手)。

在所有其他条件相同的情况下,最好首先支持 Win XP(更大的安装基础、更容易访问测试机器等)。但是,如果 NDIS 6 轻量级筛选器能够实现更快/更轻松的开发,那么我最好先实现 Win 7 驱动程序。

简而言之:根据您的经验,与 NDIS 5 相比,NDIS 6 是否显着简化了筛选器驱动程序的开发?

感谢您的任何意见。

最佳答案

如果您只想修改 WDK 示例驱动程序,那么也许 NDIS 5 IM 并不需要太多工作。我不熟悉 NDIS 6 LWF 驱动程序,因此无法发表评论。

或者使用用户模式包,例如 WinDivertWinPktFilter创建概念验证原型(prototype)。这可能比驱动程序开发更容易。 披露:我创作了 WinDivert

关于windows - NDIS 5/6 中间过滤器驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8732996/

相关文章:

java - 超时后从 Java 锁定 Windows 桌面

c - Win32应用程序中的神秘窗口消息0xc0e8

c# - 如何检查驱动程序代码签名策略是否已启用并且实际有效?

Linux 内核驱动程序 - SPI 如何识别 SPI 设备?

user-interface - .INF 文件和 NCF_HAS_UI : how to write . dll 用于显示网络驱动程序的高级属性选项卡?

linux - Linux 中 NDIS 过滤器的类似物是什么?

.net - 防止单个可执行文件的多个进程实例

c# - 目录文件大小计算 - 如何让它更快?

windows - 检查 Windows 上是否加载了驱动程序

driver - Windows IoT Core 上的 NDIS 协议(protocol)驱动程序