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, *, *) |