2

我编写了一个 NDIS 协议驱动程序。我可以使用 NdisRegisterProtocol 注册我的协议。

应用程序通常如何访问此驱动程序?有没有办法使用 Windows 套接字或者我需要提供 StreamDriver 接口?

套接字函数有第三个参数“协议”,通常类似于 IPPROTO_UDP。我可以使用此参数选择我的协议驱动程序吗?

4

1 回答 1

3

协议驱动程序不会自动在 Windows Sockets API 中公开(这是一件好事,因为它为您提供了最大的体系结构灵活性)。但是你可以通过实现几个额外的部分来让它工作。

  1. 您需要实现一些通道来与您的驱动程序进行通信。我对 Windows CE 不太熟悉,但 StreamDriver 听起来是一种可行的方法。

  2. 您需要通过 Winsock 公开该通道。编写一个“传输服务提供者”库,它接受来自 Winsock 的请求并将它们转换为您的协议驱动程序可以理解的东西。

这就是 TCPIP(协议驱动程序)显示为 IPPROTO_UDP(Winsock 协议类型)的方式——操作系统包括 TCP、UDP 和原始 IP 的 TSP。

特定于 CE 的文档在此处,但NT 文档对于概述部分也值得一读。

于 2011-08-06T04:06:36.877 回答