NFP 设备接口

客户端应用程序通过向一个打开的句柄发送一组定义好的 I/O 控制代码,与邻近设备进行通信。

发布和订阅句柄

每个发布和每个订阅都表示为驱动程序的打开句柄。 因此,M 个发布和 N 个订阅等同于驱动程序的 M+N 个打开句柄。 Windows I/O 管理器会对进程执行合理的句柄数限制。

通用 NULL 文件名句柄

打开一个通用文件句柄,用于向驱动程序发送非发布和非订阅请求。 必须接受这种类型的句柄。 客户端将使用该句柄来确定驱动程序的最大报文大小和传输速率。

IOCTL 支持

Nfpdev.h 中定义了支持近程设备驱动程序接口的 IOCTL。 控制代码使用以下属性进行定义。

  • METHOD_BUFFERED
  • FILE_ANY_ACCESS
  • FILE_DEVICE_NFP

每个发布和每个订阅都显示为驱动程序自己的打开句柄。 因此,M 个发布和 N 个订阅等同于驱动程序的 M+N 个打开句柄。 Windows I/O 管理器会对进程执行合理的句柄数限制。

IOCTL 代码在标头文件 Nfpdev.h 中定义

设备的安全描述符保留为 OS 或设备类的默认值。

保留代码和供应商 IOCTL 代码

下表描述了保留和供应商特定的控制代码范围。

类型 范围开始 范围结束
Reserved CTL_CODE(FILE_DEVICE_NFP, 0x0000, *, *) CTL_CODE(FILE_DEVICE_NFP, 0x00FF, *, *)
供应商特定 CTL_CODE(FILE_DEVICE_NFP, 0x0100, *, *) CTL_CODE(FILE_DEVICE_NFP, 0x01FF, *, *)