客户端应用程序通过发送到打开句柄的已定义的 I/O 控制代码集与邻近设备通信。
发布和订阅句柄
每个发布和每个订阅都表示为驱动程序的打开句柄。 因此,M 发布和 N 订阅等同于驱动程序的 M+N 打开句柄。 Windows I/O 管理器将对进程强制实施合理的句柄计数限制。
通用 NULL 文件名句柄
打开一个通用文件句柄,用于向驱动程序发送非发布和非订阅请求。 必须接受这种类型的句柄。 客户端将使用此句柄来确定驱动程序的最大消息大小和传输速率。
IOCTL Support
支持邻近设备驱动程序接口的 IOCTL 在 Nfpdev.h 中定义。 控件代码使用以下属性定义。
- METHOD_BUFFERED
- FILE_ANY_ACCESS
- FILE_DEVICE_NFP
每个发布和每个订阅都显示为驱动程序自己的打开句柄。 因此,M 发布和 N 订阅等同于驱动程序的 M+N 打开句柄。 Windows I/O 管理器将对进程强制实施合理的句柄计数限制。
IOCTL 代码在标头 Nfpdev.h 中定义
设备的安全描述符保留为 OS 或设备类默认值。
保留代码和供应商 IOCTL 代码
下表描述了保留和供应商特定的控制代码范围。
| 类型 | Range Start | Range End |
|---|---|---|
| Reserved | CTL_CODE(FILE_DEVICE_NFP, 0x0000, *, *) |
CTL_CODE(FILE_DEVICE_NFP, 0x00FF, *, *) |
| Vendor Specific | CTL_CODE(FILE_DEVICE_NFP, 0x0100, *, *) |
CTL_CODE(FILE_DEVICE_NFP, 0x01FF, *, *) |