IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE IOCTL (nfpdev.h)

有兴趣接收已传输消息的通知的客户端会将 IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE 请求发送到邻近感应驱动程序。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

输出缓冲区

状态块

如果请求成功,Irp-IoStatus.Status> 设置为 STATUS_SUCCESS。

否则,状态为相应的错误条件作为 NTSTATUS 代码。

有关详细信息,请参阅 NTSTATUS 值

注解

  • 客户端应用程序将在控制循环中将此 IOCTL 发送到发布句柄。 同一消息的两次单独传输将导致触发两个事件。
  • 每次完成插入的 IOCTL 时,客户端都应发送另一个 IOCTL。 驱动程序必须使用适当的锁来保证此 IOCTL 的成功完成次数等于发布的传输次数。
  • 使用此 IOCTL 时,需要执行以下操作:
    • 如果在以前未成功IOCTL_NFP_SET_PAYLOAD的句柄上收到此 IOCTL ,则驱动程序必须使用STATUS_INVALID_DEVICE_STATE完成它。
    • 驱动程序必须在发布文件句柄中维护与“CompleteEventImmediately”计数器的等效 (ULONG 或更大的) 。
    • 在驱动程序中收到此 IOCTL 时:
      • 如果计数器为零,则驱动程序必须为 IOCTL 笔供以后完成。
      • 如果计数器大于零,则驱动程序必须将计数器递减一,并立即使用STATUS_SUCCESS完成 IOCTL。
    • 如果发布已传输并且当前未插入任何 IOCTL,则驱动程序必须将“CompleteEventImmediately”计数器递增 1。
    • 如果发布是在有可用的插入 IOCTL 时传输的,则驱动程序必须使用STATUS_SUCCESS完成插入的 IRP,并且不递增“CompleteEventImmediately”计数器。
    • 如果 IOCTL 包含输入或输出缓冲区,驱动程序必须使用STATUS_INVALID_PARAMETER完成 IOCTL。
    • 如果在当前在发布句柄中插入另一个 IOCTL 时收到此 IOCTL,则必须使用 STATUS_INVALID_DEVICE_STATE 完成第二个 IOCTL (或更高版本) 。
    • 驱动程序必须支持所插入 IOCTL 的 CancelIo。

要求

要求
最低受支持的客户端 Windows 8
标头 nfpdev.h

另请参阅

近场通信 (NFC) 整体设计指南

近场邻近感应设计指南 (点击和执行、NFP 提供程序模型、驱动程序要求)