Udostępnij za pośrednictwem


SO_WSK_EVENT_CALLBACK

Opcja SO_WSK_EVENT_CALLBACK socket umożliwia aplikacji WSK włączanie i wyłączanie funkcji wywołania zwrotnego zdarzeń gniazda. Ta opcja gniazda dotyczy tylko gniazd nasłuchiwania, gniazd datagramu, gniazd zorientowanych na połączenie i gniazd podstawowych, dla których zarejestrowano interfejs rozszerzenia, dla którego zdefiniowano co najmniej jedną funkcję wywołania zwrotnego zdarzeń.

Jeśli aplikacja WSK używa tej opcji gniazda do włączania lub wyłączania funkcji wywołania zwrotnego zdarzeń w gniazdie nasłuchiwania lub gniazda datagramu, musi to zrobić po powiązaniu gniazda z lokalnym adresem transportu.

Jeśli aplikacja WSK używa tej opcji gniazda do włączania lub wyłączania funkcji wywołania zwrotnego zdarzeń w gniazdie zorientowanym na połączenie, musi to zrobić po połączeniu gniazda ze zdalnym adresem transportu.

Aby włączyć lub wyłączyć funkcje wywołania zwrotnego zdarzeń w gniazdach, aplikacja WSK wywołuje funkcję WskControlSocket z następującymi parametrami.

Parametr Wartość

RequestType

WskSetOption

ControlCode

SO_WSK_EVENT_CALLBACK

poziom

SOL_SOCKET

InputSize

sizeof(WSK_EVENT_CALLBACK_CONTROL)

InputBuffer

Wskaźnik do struktury WSK_EVENT_CALLBACK_CONTROL

OutputSize

0

OutputBuffer

ZERO

OutputSizeReturned

ZERO

Aplikacja WSK nie określa wskaźnika do IRP podczas wywoływania funkcji WskControlSocket w celu włączenia funkcji wywołania zwrotnego zdarzeń w gniazdie.

Aplikacja WSK może opcjonalnie określić wskaźnik do IRP podczas wywoływania funkcji WskControlSocket, aby wyłączyć funkcję wywołania zwrotnego zdarzeń w gniazdie.

Gdy aplikacja WSK wywołuje WskControlSocket, aby wyłączyć funkcję wywołania zwrotnego zdarzeń, podsystem WSK zachowuje się w następujący sposób:

  • Jeśli nie ma wywołań w toku funkcji wywołania zwrotnego zdarzeń, która jest wyłączona, gdy aplikacja WSK wywołuje funkcję WskControlSocket, funkcja wywołania zwrotnego zdarzeń jest wyłączona, a funkcja WskControlSocket zwraca STATUS_SUCCESS. Jeśli aplikacja WSK określa protokół IRP, protokół IRP zostanie ukończony ze stanem powodzenia.

  • Jeśli w toku występują wywołania funkcji wywołania zwrotnego zdarzeń, która jest wyłączona, gdy aplikacja WSK wywołuje funkcję WskControlSocket i aplikację WSK określono protokół IRP, funkcja WskControlSocket zwraca STATUS_PENDING. Podsystem WSK wyłącza funkcję wywołania zwrotnego zdarzeń i kończy IRP po zwrócenia wszystkich wywołań w toku do funkcji wywołania zwrotnego zdarzeń.

  • Jeśli w toku są wywołania funkcji wywołania zwrotnego zdarzeń, która jest wyłączona, gdy aplikacja WSK wywołuje funkcję WskControlSocket, a aplikacja WSK nie określiła protokołu IRP, funkcja WskControlSocket zwraca STATUS_EVENT_PENDING. Podsystem WSK wyłącza funkcję wywołania zwrotnego zdarzeń po zwróceniu wszystkich wywołań w toku do funkcji wywołania zwrotnego zdarzeń.

Podczas włączania lub wyłączania dowolnej standardowej funkcji wywołania zwrotnego zdarzeń WSK aplikacja WSK ustawia element członkowski npiId struktury WSK_EVENT_CALLBACK_CONTROL wskaźnikiem do wskaźnika do identyfikatora interfejsu programowania sieciowego (NPI), NPI_WSK_INTERFACE_ID.

Podczas włączania lub wyłączania wszystkich funkcji wywołania zwrotnego dla interfejsu rozszerzenia aplikacja WSK ustawia identyfikator npiId elementu członkowskiego struktury WSK_EVENT_CALLBACK_CONTROL do wskaźnika identyfikatora NPI dla tego interfejsu rozszerzenia.

Podczas włączania funkcji wywołania zwrotnego zdarzeń aplikacja WSK może jednocześnie włączyć dowolną kombinację funkcji wywołania zwrotnego zdarzeń, które są prawidłowe dla określonej kategorii gniazda WSK. Aplikacja WSK jednocześnie włącza te kombinacje, ustawiając EventMask składową struktury WSK_EVENT_CALLBACK_CONTROL na bitową lub flagi zdarzeń dla wszystkich funkcji wywołania zwrotnego zdarzeń, które są włączone.

Podczas wyłączania funkcji wywołania zwrotnego zdarzeń aplikacja WSK musi niezależnie wyłączyć każdą funkcję wywołania zwrotnego zdarzeń. Aplikacja WSK niezależnie wyłącza funkcję wywołania zwrotnego zdarzeń, ustawiając EventMask elementu członkowskiego struktury WSK_EVENT_CALLBACK_CONTROL na bitową lub flagę zdarzenia dla funkcji wywołania zwrotnego zdarzeń, która jest wyłączona, a flaga WSK_EVENT_DISABLE.

W poniższej tabeli przedstawiono prawidłowe flagi zdarzeń dla gniazda nasłuchiwania.

Flaga zdarzenia Funkcja wywołania zwrotnego zdarzeń

WSK_EVENT_ACCEPT

WskAcceptEvent

W poniższej tabeli przedstawiono prawidłowe flagi zdarzeń dla gniazda datagramu.

Flaga zdarzenia Funkcja wywołania zwrotnego zdarzeń

WSK_EVENT_RECEIVE_FROM

WskReceiveFromEvent

W poniższej tabeli przedstawiono prawidłowe flagi zdarzeń dla gniazda zorientowanego na połączenie.

Flaga zdarzenia Funkcja wywołania zwrotnego zdarzeń

WSK_EVENT_DISCONNECT

WskDisconnectEvent

WSK_EVENT_RECEIVE

WskReceiveEvent

WSK_EVENT_SEND_BACKLOG

WskSendBacklogEvent

Gniazdo nasłuchiwania może automatycznie włączać funkcje wywołania zwrotnego zdarzeń na gniazdach zorientowanych na połączenia, które są akceptowane przez gniazdo nasłuchiwania. Aplikacja WSK automatycznie włącza te funkcje wywołania zwrotnego, włączając funkcje wywołania zwrotnego zdarzeń gniazda zorientowanego na połączenie na gniazdach nasłuchiwania. Funkcje wywołania zwrotnego zdarzeń są automatycznie włączone w akceptowanym gniazdie zorientowanym na połączenie tylko wtedy, gdy gniazdo jest akceptowane przez gniazdo nasłuchiwania WskAcceptEvent funkcji wywołania zwrotnego zdarzeń. Jeśli gniazdo zorientowane na połączenie jest akceptowane przez funkcję WskAccept gniazda, zaakceptowane funkcje wywołania zwrotnego zdarzeń gniazda nie są automatycznie włączone.

Po włączeniu funkcji wywołania zwrotnego zdarzeń zorientowanych na połączenie na gniazdach nasłuchiwania nie można ich wyłączyć w gniazdach nasłuchiwania. Jeśli funkcja wywołania zwrotnego zdarzeń WskAcceptEvent jest wyłączona, a następnie ponownie włączona na gniazda nasłuchiwania, wszystkie funkcje wywołania zwrotnego zdarzeń zorientowane na połączenie, które zostały pierwotnie włączone w tym gniazdach nasłuchiwania, będą nadal stosowane do wszystkich gniazd zorientowanych na połączenie, które są akceptowane przez funkcję WskAcceptEvent funkcji wywołania zwrotnego zdarzeń.

Aby uzyskać więcej informacji na temat włączania i wyłączania funkcji wywołania zwrotnego zdarzeń gniazda, zobacz Włączanie i wyłączanie funkcji wywołania zwrotnego zdarzeń.

Wymagania

Wersja

Dostępne w systemie Windows Vista i nowszych wersjach systemów operacyjnych Windows.

Nagłówek

Wsk.h (w tym Wsk.h)