IOCTL_NFP_SET_PAYLOAD IOCTL (nfpdev.h)
客户端应用程序发送消息数据,并使用 IOCTL_NFP_SET_PAYLOAD 请求确认发布。
主要代码
输入缓冲区
输入缓冲区包含要传输的消息数据。
输出缓冲区
没有。
状态块
Irp->IoStatus.Status 设置为STATUS_SUCCESS(如果请求成功)。
否则,状态为相应的错误条件作为 NTSTATUS 代码。
有关详细信息,请参阅 NTSTATUS 值。
言论
使用此 IOCTL 时,需要执行以下作:
- 如果在以前未在“Pubs\...” 上打开的句柄上发送此 IOCTL文件名,驱动程序必须使用STATUS_INVALID_DEVICE_STATE完成它。
- 消息数据是写入一次。 如果此 IOCTL 成功一次,则必须使用STATUS_INVALID_DEVICE_STATE完成在同一句柄上收到的任何后续IOCTL_NFP_SET_PAYLOAD。
- 如果 IOCTL 包含输出缓冲区,驱动程序必须通过STATUS_INVALID_PARAMETER完成 IOCTL。
- 如果输入缓冲区大于驱动程序的最大消息大小,驱动程序必须用STATUS_INVALID_BUFFER_SIZE完成 IOCTL。
- 如果此 IOCTL 成功后任何设备成为代理设备,并在句柄关闭之前,则消息数据(及其类型)必须仅传输到代理设备一次。
- 如果在关闭句柄之前,相同(或不同)设备再次成为代理设备,则必须再次传输消息。
- 如果此 IOCTL 成功完成时设备当前处于代理状态,则必须将消息数据(及其类型)传输(仅一次)传输到代理设备。 即使句柄立即关闭,也是如此。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 |
标头 | nfpdev.h |