用戶端應用程式會傳送訊息數據,並使用 IOCTL_NFP_SET_PAYLOAD 要求確認發行集。
主要程序代碼
輸入緩衝區
輸入緩衝區包含要傳輸的訊息數據。
輸出緩衝區
沒有。
狀態區塊
Irp->如果要求成功,IoStatus.Status 會設定為STATUS_SUCCESS。
否則,狀態為適當的錯誤條件作為NTSTATUS程式碼。
如需詳細資訊,請參閱 NTSTATUS 值。
言論
使用此 IOCTL 時需要下列動作:
- 如果這個 IOCTL 是在先前尚未在 “Pubs\...” 上開啟的句柄上傳送filename,驅動程序必須以STATUS_INVALID_DEVICE_STATE完成。
- 訊息數據會寫入一次。 如果此 IOCTL 成功一次,則相同句柄上收到的任何後續IOCTL_NFP_SET_PAYLOAD都必須完成STATUS_INVALID_DEVICE_STATE。
- 如果 IOCTL 包含輸出緩衝區,驅動程式必須使用 STATUS_INVALID_PARAMETER 完成 IOCTL。
- 如果輸入緩衝區大於驅動程式的訊息大小上限,驅動程序必須以STATUS_INVALID_BUFFER_SIZE完成 IOCTL。
- 如果此 IOCTL 成功之後任何裝置變成代理裝置,而且在關閉句柄之前,則訊息數據(連同其類型)必須只傳送一次至代理裝置。
- 如果相同 (或不同) 裝置在關閉句柄之前再次變成代理,則必須再次傳輸訊息。
- 如果此 IOCTL 順利完成時,裝置目前處於近端狀態,則必須將訊息數據(連同其類型一起)傳輸(只有一次)傳送至代理裝置。 即使句柄立即關閉,也是如此。
要求
| 要求 | 價值 |
|---|---|
| 最低支援的用戶端 | Windows 8 |
| 標頭 | nfpdev.h |