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 |