2011-10-26 45 views
0

我刚刚设法写我的第一个Windows驱动程序(尚未注册它,但我设法得到的东西创建!)。使用驱动程序连接网络功能,高级概述?

我想知道,如果有人可以给我的,我怎么能达到一个高的概述:

我想写当计算机接收的网络包,Windows之前,将实施一些行为的驱动程序对数据包做了什么,我想把这些数据输出到C或C++程序的控制台。

让我们假设我有一个C/C++程序,它有一个控制台。 C/C++程序如何与我写的连接网络活动的驱动程序交互?它只是一些调用我的驱动程序的C代码,函数将数据作为对象返回,然后我可以使用该对象在控制台中显示?

预先感谢您的任何可能的答复

回答

1

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

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

+0

我想在'windows'之前接触到数据包,我对高频交易感兴趣,所以我想尝试编程真的很低。现在我已经说过了,是否仍然写驱动程序? – user997112

+0

PCap真的是低级别的,因为它提供了一个你正试图实现的驱动程序,以及用户模式应用程序的接口。为什么又要这样做? –

+0

我没有意识到,我认为winpcap是一个包含大量多余功能的包装,这会让事情变得更慢。那么你认为(假设他们使用C或C++)开发HF交易平台的人也会在Linux上使用pcap,因为编写驱动程序是没有意义的。还是有一些使用驱动程序的性能家伙? – user997112

0

如果您确实需要驱动程序,或者需要在打包Windows网络堆栈之前操作或过滤数据包,则需要查看过滤器驱动程序。

此过滤器驱动程序可以暴露用户空间应用程序可以读取/写入的设备文件。 Windows DDK包含示例。