我编写了一个 NDIS 协议驱动程序。我可以使用 NdisRegisterProtocol 注册我的协议。
应用程序通常如何访问此驱动程序?有没有办法使用 Windows 套接字或者我需要提供 StreamDriver 接口?
套接字函数有第三个参数“协议”,通常类似于 IPPROTO_UDP。我可以使用此参数选择我的协议驱动程序吗?
我编写了一个 NDIS 协议驱动程序。我可以使用 NdisRegisterProtocol 注册我的协议。
应用程序通常如何访问此驱动程序?有没有办法使用 Windows 套接字或者我需要提供 StreamDriver 接口?
套接字函数有第三个参数“协议”,通常类似于 IPPROTO_UDP。我可以使用此参数选择我的协议驱动程序吗?
协议驱动程序不会自动在 Windows Sockets API 中公开(这是一件好事,因为它为您提供了最大的体系结构灵活性)。但是你可以通过实现几个额外的部分来让它工作。
您需要实现一些通道来与您的驱动程序进行通信。我对 Windows CE 不太熟悉,但 StreamDriver 听起来是一种可行的方法。
您需要通过 Winsock 公开该通道。编写一个“传输服务提供者”库,它接受来自 Winsock 的请求并将它们转换为您的协议驱动程序可以理解的东西。
这就是 TCPIP(协议驱动程序)显示为 IPPROTO_UDP(Winsock 协议类型)的方式——操作系统包括 TCP、UDP 和原始 IP 的 TSP。