IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE IOCTL (nfpdev.h)
想要接收訊息已傳輸通知的用戶端,會將 IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE 要求傳送給鄰近驅動程式。
主要程序代碼
輸入緩衝區
沒有
輸出緩衝區
沒有
狀態區塊
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 |