функция обратного вызова PFN_WSK_DISCONNECT_EVENT (wsk.h)
Функция обратного вызова событий WskDisconnectEvent уведомляет приложение WSK о том, что подключение к сокету, ориентированному на подключение, было отключено удаленным приложением.
Синтаксис
PFN_WSK_DISCONNECT_EVENT PfnWskDisconnectEvent;
NTSTATUS PfnWskDisconnectEvent(
[in, optional] PVOID SocketContext,
[in] ULONG Flags
)
{...}
Параметры
[in, optional] SocketContext
Указатель на контекст сокета для отключенного сокета, ориентированного на подключение. Приложение WSK предоставило этот указатель на подсистему WSK одним из следующих способов:
- Он назвал функцию WskSocket для создания сокета.
- Он назвал функцию WskSocketConnect для создания сокета.
- Он вызвал функцию WskAccept, чтобы принять сокет в качестве входящего подключения.
- Его функция обратного вызова событий WskAcceptEvent была вызвана для принятия сокета в качестве входящего подключения.
[in] Flags
Значение ULONG, содержащее побитовое или сочетание следующих флагов:
WSK_FLAG_ABORTIVE
Удаленное приложение выполнило прерывание отключения сокета. Если этот флаг не задан, удаленное приложение выполнило корректное отключение сокета.
WSK_FLAG_AT_DISPATCH_LEVEL
Подсистема WSK называется функцией обратного вызова событий WskDisconnectEvent WskDisconnectEvent в IRQL = DISPATCH_LEVEL. Если этот флаг не задан, подсистема WSK может вызвать функцию обратного вызова событий WSKDisconnectEvent в любой <IRQL = DISPATCH_LEVEL.
Возвращаемое значение
Функция обратного вызова событий WSK приложения WSK WskDisconnectEvent должна всегда возвращать STATUS_SUCCESS.
Замечания
Подсистема WSK вызывает функцию обратного вызова событий WSK приложения WSK WskDisconnectEvent при отключении сокета, ориентированного на подключение, удаленным приложением, только если функция обратного вызова события была включена с параметром сокета SO_WSK_EVENT_CALLBACK. Дополнительные сведения о включении функций обратного вызова событий сокета см. в разделе Включение и отключение функций обратного вызова событий.
Если удаленное приложение выполнило корректное отключение сокета, дополнительные данные не будут получены из сокета. Однако приложение WSK по-прежнему может отправлять данные в сокет, пока сокет не будет полностью закрыт удаленным приложением, или приложение WSK вызывает функцию WskDisconnectили функцию WskCloseSocket в сокете.
Если удаленное приложение выполнило прерывание отключения сокета, из сокета не будут получены дополнительные данные, а дополнительные данные не могут быть отправлены в сокет.
Подсистема WSK вызывает функцию обратного вызова событий WSK приложения WSK WskDisconnectEvent в IRQL <= DISPATCH_LEVEL.
Функция обратного вызова событий приложения WSK WskDisconnectEvent не должна ожидать завершения других запросов WSK в контексте функций завершения WSK или обратного вызова событий. Обратный вызов может инициировать другие запросы WSK (если он не тратит слишком много времени на DISPATCH_LEVEL), но он не должен ждать завершения даже при вызове обратного вызова в IRQL = PASSIVE_LEVEL.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
целевая платформа | Виндоус |
заголовка | wsk.h (include Wsk.h) |
IRQL | <= DISPATCH_LEVEL |