SOCK_NOTIFY_REGISTRATION結構 (winsock2.h)

表示提供給 ProcessSocketNotifications 函 式的資訊。

如需詳細資訊和程式代碼範例,請參閱 Winsock 套接字狀態通知

語法

typedef struct SOCK_NOTIFY_REGISTRATION {
  SOCKET socket;
  PVOID  completionKey;
  UINT16 eventFilter;
  UINT8  operation;
  UINT8  triggerFlags;
  DWORD  registrationResult;
} SOCK_NOTIFY_REGISTRATION;

成員

socket

類型: SOCKET

由任何 WSASocket、socket、WSAAcceptacceptWSADuplicateSocket 函式所開啟之 Winsock 套接字的句柄。 僅支援 Microsoft Winsock 提供者套接字。

completionKey

類型: PVOID

當代理套接字傳送通知時,PostQueuedCompletionStatus 函式的 dwCompletionKey 參數中要使用的值。 這個參數會在註冊建立時使用。 若要變更完成金鑰,請移除註冊並重新註冊。

eventFilter

類型: UINT16

一組旗標,指出所要求的通知。 這必須是) 中 WinSock2.h 定義的下列一或多個值 (。

SOCK_NOTIFY_REGISTER_EVENT_NONE。 不應發出通知。 SOCK_NOTIFY_REGISTER_EVENT_IN。 當數據可以讀取而不封鎖時,應該發出通知。 SOCK_NOTIFY_REGISTER_EVENT_OUT。 當數據可以寫入而不封鎖時,應該發出通知。 SOCK_NOTIFY_REGISTER_EVENT_HANGUP。 當數據流導向連線已中斷連線或中止時,應該發出通知。 SOCK_NOTIFY_REGISTER_EVENTS_ALL。 具有 值 (SOCK_NOTIFY_REGISTER_EVENT_IN | SOCK_NOTIFY_REGISTER_EVENT_OUT | SOCK_NOTIFY_REGISTER_EVENT_HANGUP)

operation

類型: UINT8

表示在註冊上執行的作業。 最多可以一次執行一個作業。 這些值定義於 中 WinSock2.h

SOCK_NOTIFY_OP_NONE。 不應該執行任何註冊作業。 如果您的應用程式呼叫 ProcessSocketNotifications ,而且只對接收通知感興趣,請使用此選項。 SOCK_NOTIFY_OP_ENABLE。 啟用註冊。 在收到 SOCK_NOTIFY_EVENT_DISABLE 通知之前,不得重新啟用通知。 SOCK_NOTIFY_OP_DISABLE。 停用註冊,但不會終結基礎數據結構。 請注意,這不會移除註冊,只會隱藏新通知的佇列。 在收到SOCK_NOTIFY_EVENT_DISABLE事件之前,可能仍會傳遞已排入佇列 通知。 SOCK_NOTIFY_OP_REMOVE。 拿掉先前註冊的通知。 可能會移除已啟用和停用的通知。 發出SOCK_NOTIFY_EVENT_REMOVE通知,保證之後不會再針對該完成密鑰發出通知,除非重新註冊。

triggerFlags

類型: UINT8

一組旗標,指出) 中 WinSock2.h 定義的觸發程式行為 (。

SOCK_NOTIFY_TRIGGER_ONESHOT。 在傳遞下一個通知時,將不會移除註冊 () 。 SOCK_NOTIFY_TRIGGER_PERSISTENT。 註冊會保持作用中,直到明確停用或移除為止。 SOCK_NOTIFY_TRIGGER_LEVEL。 註冊適用於層級觸發的通知。 與邊緣觸發不相容。 必須提供其中一個邊緣或層級觸發。 SOCK_NOTIFY_TRIGGER_EDGE。 註冊適用於邊緣觸發的通知。 與層級觸發不相容。 必須提供其中一個邊緣或層級觸發。

只有在啟用註冊時,才會提供通知。 停用註冊時,通知不會排入佇列。 當通知排入佇列以取得指定的套接字時,它們會聯合成單一通知。 因此,套接字的單一事件遮罩可能會描述多個事件。

假設已啟用註冊,每當所需的條件保留時,就會提供層級觸發的通知。

如果啟用註冊,每當條件從不保留變更為保留時,就會提供邊緣觸發的通知。 啟用註冊時,條件必須變更,才能將通知排入佇列。 因此,註冊之後,必須完全清空套接字的接收緩衝區,以確保收到通知。

registrationResult

類型: DWORD

成功呼叫 ProcessSocketNotifications 之後, registrationResult 會包含指出註冊成功或失敗的程序代碼。 ERROR_SUCCESS值表示註冊成功。

規格需求

需求
最低支援的用戶端 Windows 10 組建 20348
最低支援的伺服器 Windows 10 組建 20348
標頭 winsock2.h

另請參閱