2009-05-15 57 views
3

我正在开发本质上是专门的防火墙应用程序。该解决方案需要兼容32位和64位。我的公司希望保留当前的程序界面,这是用C#编写的。NDIS中级驱动程序接口C#

我需要的是:这是一种监视和操纵系统上所有网络流量的方法。我的研究使我相信NDIS(网络驱动程序接口规范)中级驱动程序是一条可行的路线。如果我能用C#编写这种驱动程序,那很好,但我不确定这是可能的。至少,我需要将C#中的接口连接到以任何语言编写的驱动程序。

我发现了一个巨大的资源在线在题为系列文章创建一个 “扩展微软的PASSThru NDIS中间层驱动程序”:

  1. Part 1 - Adding a DeviceIoControl Interface
  2. Part 2 - Two IP Address Blocking NDIS IM Drivers
  3. Part 3 - Supporting Windows XP 64-Bit Edition

但是,它的日期(2003年)。在我投资阅读和学习之前,我想确保我不浪费时间。

有没有更好的方法来做到这一点?是否有任何开源项目或文章比上述文章更好地解释了该过程?我甚至在大球场?请帮助。

+1

我不知道我的理解是否正确。你是想用C#编写驱动程序,还是打算在创建它之后使用C#与驱动程序进行交互(使用C++)? – 2009-05-15 17:35:16

+0

@Miky:没关系。如果我可以用C#编写驱动程序,那会很棒,但我不确定这是可能的。至少,我需要将C#中的接口连接到以任何语言编写的驱动程序。 – 2009-05-15 17:40:25

回答

1

还有另一个来自同一作者的页面,标题为Windows Network Data and Packet Filtering,它提供了“可用于在Microsoft Windows平台上过滤网络数据和网络数据包的各种技术的简要介绍”。

它提到了其他选项,例如, “TDI过滤驱动程序”和“用户模式网络数据过滤”,这可能会适合,取决于您是否真的想要在系统上操作全部网络通信。

+0

我不一定要*操纵*所有网络流量,但解决方案必须*能够*。这不是一个选项,它是一个项目需求。 – 2009-05-15 18:43:25

+0

所有流量,或者例如只有所有互联网协议流量? – ChrisW 2009-05-15 19:01:36

+0

啊,我明白你的意思了。抱歉。所有IP流量。通过所有网络流量,我的意思是来自任何网络设备。 – 2009-05-15 19:05:00

相关问题