共用方式為


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_NFP_SET_PAYLOAD的句柄上收到此 IOCTL,驅動程式必須以STATUS_INVALID_DEVICE_STATE完成它。
    • 驅動程式必須在發行集檔句柄中維護相當於 「CompleteEventImmediately」 計數器 (ULONG 或更大)。
    • 當驅動程式中收到此 IOCTL 時:
      • 如果計數器為零,則驅動程序必須將IOCTL畫上筆,以便稍後完成。
      • 如果計數器大於零,則驅動程式必須遞減計數器一個,並立即完成IOCTL與 STATUS_SUCCESS。
    • 如果傳送發行集且目前未傳送任何 IOCTL,驅動程式必須逐一遞增 「CompleteEventImmediately」 計數器。
    • 如果在有可用的畫筆 IOCTL 時傳輸出版物,驅動程式必須以STATUS_SUCCESS完成畫筆 IRP,且 NOT 遞增 “CompleteEventImmediately” 計數器。
    • 如果 IOCTL 包含輸入或輸出緩衝區,驅動程式必須使用 STATUS_INVALID_PARAMETER 完成 IOCTL。
    • 如果收到這個 IOCTL,而另一個目前在出版物句柄中畫筆,則第二個(或更新版本)必須完成STATUS_INVALID_DEVICE_STATE。
    • 驅動程式必須支援手寫IOCTL的 CancelIo。

要求

要求 價值
最低支援的用戶端 Windows 8
標頭 nfpdev.h

另請參閱

近距離通信(NFC)整體設計指南

近距離鄰近設計指南(點選和 Do、NFP 提供者模型、驅動程式需求)