首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WinXP/7上与NDIS通信

在WinXP/7上与NDIS通信
EN

Stack Overflow用户
提问于 2012-09-19 12:58:59
回答 1查看 703关注 0票数 0

有通过1Gbit以太网连接到PC的设备。WinXP/7我想以以下方式捕获数据:

  1. PC机向设备发送命令(启动数据采集)
  2. 设备正在向PC发送数据。
  3. 用户应用程序等待获取
  4. 驱动程序将数据保存在内存中。
  5. 设备发出命令通知它已完成采集。
  6. 驱动程序生成中断,用户应用程序开始从驱动程序读取数据。

我不知道如何实现这一点。有NIC司机。有NDIS。用户应用程序能与NDIS通信吗?我是否需要编写额外的驱动程序来与NDIS通信?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-19 23:24:41

你的问题真的有两部分:

  1. 如何向设备发送命令
  2. 如何捕获从设备发送的数据

第一个问题有两种可能的解决方案,取决于您的设备是否接受封装在IPv4 4/IPv4 6中的命令,或者它是否需要其他一些低级协议。如果设备接受封装在IPv6 4/IPv6 6中的命令,那么只需使用您喜欢的编程语言中的套接字API即可。

如果设备需要自己的非IP协议,则需要添加NDIS协议驱动程序。Windows中包含了一个示例协议驱动程序;该驱动程序实际上打开了一个通道,允许用户模式应用程序发送任何类型的数据包。(这将是一个安全问题,如果它被广泛部署,这就是为什么它不是操作系统的内置特性。)您可能需要修改协议驱动程序,以便只选择性地侦听来自设备的控制消息。

第二个问题--包捕获--已经解决了。您应该能够将现有的软件从货架上取出,并将其集成到您的解决方案中。Microsoft网络监视器有一个API,您可以使用该API轻松启动/停止数据包捕获,并迭代捕获的结果。或者,有些人使用WinPcap。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12495211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档