mswsock.h (RIO_NOTIFICATION_COMPLETION_TYPE 列舉)
RIO_NOTIFICATION_COMPLETION_TYPE列舉會指定使用 Winsock 已註冊 I/O 延伸模組傳送或接收數據時,要與RIONotify 函式搭配使用的完成佇列通知類型。
Syntax
typedef enum _RIO_NOTIFICATION_COMPLETION_TYPE {
RIO_EVENT_COMPLETION = 1,
RIO_IOCP_COMPLETION = 2
} RIO_NOTIFICATION_COMPLETION_TYPE, *PRIO_NOTIFICATION_COMPLETION_TYPE;
常數
RIO_EVENT_COMPLETION 值: 1 事件句柄可用來發出完成佇列通知的訊號。 建立RIO_CQ時,事件句柄會以傳遞至RIOCreateCompletionQueue 函式的 RIO_NOTIFICATION_COMPLETION 結構中的 EventNotify.EventHandle 成員的形式提供。 此RIO_CQ的RIONotify 函式完成會發出事件訊號。 建立RIO_CQ時,傳遞至RIOCreateCompletionQueue 函式之RIO_NOTIFICATION_COMPLETION結構中的 Event.NotifyReset 成員會指出事件是否應該重設為對RIONotify 函式的呼叫的一部分。 |
RIO_IOCP_COMPLETION 值: 2 I/O 完成埠句柄可用來發出完成佇列通知的訊號。 建立RIO_CQ時,會將 I/O 完成埠句柄當做傳遞至RIOCreateCompletionQueue 函式之RIO_NOTIFICATION_COMPLETION結構中的 Iocp.IocpHandle 成員提供。 此RIO_CQ的RIONotify 函式完成會將專案排入 I/O 完成埠,您可以使用 GetQueuedCompletionStatus 或 GetQueuedCompletionStatusEx 函式來擷取。 佇列專案會將傳回的 lpCompletionKey 參數值設定為 RIO_NOTIFICATION_COMPLETIONIocp.CompletionKey 成員中指定的值,並將傳回的 lpOverlapped 參數值設定為 RIO_NOTIFICATION_COMPLETION 結構中 Iocp.Overlapped 成員中指定的值。 RIO_NOTIFICATION_COMPLETION中的 Iocp.Overlapped 成員將是非 NULL 值。 |
備註
RIO_NOTIFICATION_COMPLETION_TYPE列舉會與 Winsock 已註冊的 I/O 延伸模組搭配使用,以指定要與RIO_CQ搭配使用的 I/O 完成類型。 列舉值會在建立 RIO_CQ 時,在傳遞至 RIOCreateCompletionQueue 函式的 RIO_NOTIFICATION_COMPLETION 結構中設定。
建立 RIO_CQ時, RIO_NOTIFICATION_COMPLETION 結構會決定應用程式如何接收完成佇列通知。 如果在建立完成佇列時提供 RIO_NOTIFICATION_COMPLETION 結構,應用程式可能會呼叫 RIONotify 函式 來要求完成佇列通知。 通常當完成佇列不是空的時,就會發生此通知。 這可能會立即發生,或下一個完成專案插入完成佇列時。 發出完成佇列通知之後,應用程式必須呼叫 RIONotify ,才能接收另一個完成佇列通知。
完成佇列通知有兩個選項可供使用。
- 事件句柄。
- I/O 完成埠
如果RIO_NOTIFICATION_COMPLETION結構的 Type 成員設定為 RIO_EVENT_COMPLETION,則會使用事件句柄來發出完成佇列通知的訊號。 事件句柄會以傳遞至RIOCreateCompletionQueue 函式的 RIO_NOTIFICATION_COMPLETION 結構中的 EventNotify.EventHandle 成員的形式提供。
如果RIO_NOTIFICATION_COMPLETION結構的 Type 成員設定為 RIO_IOCP_COMPLETION,則會使用 I/O 完成埠來發出完成佇列通知的訊號。 I/O 完成埠句柄會以傳遞至RIOCreateCompletionQueue 函式之RIO_NOTIFICATION_COMPLETION結構中的 Iocp.IocpHandle 成員的形式提供。 此RIO_CQ的RIONotify 函式完成會將專案排入 I/O 完成埠,您可以使用 GetQueuedCompletionStatus 或 GetQueuedCompletionStatusEx 函式來擷取。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
標頭 | mswsock.h |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應