Windows 7 在WinXP/7上与NDIS通信
Windows 7 在WinXP/7上与NDIS通信,windows-7,windows-xp,drivers,ethernet,ndis,Windows 7,Windows Xp,Drivers,Ethernet,Ndis,有一个设备通过1Gbit以太网连接到PC。WinXP/7
我希望通过以下方式捕获数据:
PC向设备发送命令(启动数据采集)
设备正在向PC发送数据
用户应用程序等待获取
驱动程序将数据保存在内存中
设备发送命令,通知其已完成采集
驱动程序生成中断,用户应用程序开始从驱动程序读取数据
我不知道如何实现这一点。
有一个网卡驱动程序。有NDIS。用户应用程序能否与NDIS通信?
我是否需要编写额外的驱动程序来与NDIS通信?您的问题实际上有两部分:
如何向设备发送命令
如何捕获从设备发送的数据
第一个
有一个设备通过1Gbit以太网连接到PC。WinXP/7
我希望通过以下方式捕获数据:
PC向设备发送命令(启动数据采集)
设备正在向PC发送数据
用户应用程序等待获取
驱动程序将数据保存在内存中
设备发送命令,通知其已完成采集
驱动程序生成中断,用户应用程序开始从驱动程序读取数据
我不知道如何实现这一点。
有一个网卡驱动程序。有NDIS。用户应用程序能否与NDIS通信?
我是否需要编写额外的驱动程序来与NDIS通信?您的问题实际上有两部分:
如何向设备发送命令
如何捕获从设备发送的数据
第一个问题有两种可能的解决方案,具体取决于您的设备是否接受封装在IPv4/IPv6中的命令,或者是否需要其他低级协议。如果设备接受IPv4/IPv6中封装的命令,则只需使用您喜爱的编程语言即可
如果设备需要自己的非IP协议,则需要添加NDIS协议驱动程序。Windows驱动程序工具包中包含一个;这个驱动程序实际上打开了一个通道,允许用户模式应用程序发送任何类型的数据包。(如果广泛部署,这将是一个安全问题,这就是为什么它不是操作系统的内置功能。)您可能需要修改协议驱动程序,以便仅选择性地侦听来自设备的控制消息
第二个问题——数据包捕获——已经解决。您应该能够将现有的软件从架子上取下来,并将其集成到您的解决方案中。有一个API,您可以使用它轻松启动/停止数据包捕获,并遍历捕获的结果。或者,有些人使用WinPcap