C 使用驱动程序连接网络功能,高级概述?

C 使用驱动程序连接网络功能,高级概述?,c,windows,kernel,driver,C,Windows,Kernel,Driver,我刚刚成功地编写了我的第一个windows驱动程序(尚未注册,但我成功地创建了它!) 我想知道是否有人能给我一个关于如何实现以下目标的高度概述: 我想编写一个驱动程序,当计算机接收到网络包时,它将执行一些行为,在Windows对它进行处理之前,我想把这个数据输出到C或C++程序的控制台。 假设我编写了一个C/C++程序,它有一个控制台。C/C++程序如何与我编写的连接网络活动的驱动程序交互?是否只是一些调用我的驱动程序的C代码,函数将数据作为对象返回,然后我可以使用该对象在控制台中显示 提前感谢

我刚刚成功地编写了我的第一个windows驱动程序(尚未注册,但我成功地创建了它!)

我想知道是否有人能给我一个关于如何实现以下目标的高度概述:

我想编写一个驱动程序,当计算机接收到网络包时,它将执行一些行为,在Windows对它进行处理之前,我想把这个数据输出到C或C++程序的控制台。 假设我编写了一个C/C++程序,它有一个控制台。C/C++程序如何与我编写的连接网络活动的驱动程序交互?是否只是一些调用我的驱动程序的C代码,函数将数据作为对象返回,然后我可以使用该对象在控制台中显示


提前感谢您提供的任何可能的答复

此任务不需要驱动程序。使用包嗅探器库,比如(实际上您需要)。捕获数据包并将其打印到控制台非常简单


另一种方法是原始套接字。但是桌面Windows(与Windows Server相反)限制了原始套接字功能。

如果您确实需要驱动程序,或者需要在数据包到达Windows网络堆栈之前对其进行操作或过滤,则需要查看过滤驱动程序


然后,此筛选器驱动程序可以公开一个设备文件,用户空间应用程序可以在该文件上读/写。windows DDK包含示例。

我想在“windows”之前访问数据包,我对高频交易感兴趣,因此我想尝试编写真正低水平的程序。现在我已经说过了,编写驱动程序还有意义吗?PCap的级别非常低,因为它提供了一个您试图实现的驱动程序,以及用户模式应用程序的接口。为什么还要这样做呢?我没有意识到,我认为winpcap是一个包装器,有很多多余的功能,这会使事情变得更慢。那么你认为(假设他们使用C或C++)开发高频交易平台的人也会在linux上使用pcap,因为编写驱动程序是毫无意义的吗?或者是使用驱动程序来提高性能?是的,它也可以在Linux上使用。是的,编写自己的驱动程序或使用pcap在性能上有很大差异,但我指的是开发速度;)也许人们使用PCap拦截高负载千兆网络的事实会让你相信PCap已经足够好了。而且它具有无价的功能过滤能力。这是一个伟大的实现它自己。