Поделиться через


функция обратного вызова PFN_WSK_CONNECT (wsk.h)

Функция WskConnect подключает сокет, ориентированный на подключение или поток, к удаленному адресу транспорта.

Синтаксис

PFN_WSK_CONNECT PfnWskConnect;

NTSTATUS PfnWskConnect(
  [in]      PWSK_SOCKET Socket,
  [in]      PSOCKADDR RemoteAddress,
            ULONG Flags,
  [in, out] PIRP Irp
)
{...}

Параметры

[in] Socket

Указатель на структуру WSK_SOCKET , указывающую объект сокета для сокета, который подключается к удаленному транспортному адресу.

[in] RemoteAddress

Указатель на структуру , указывающую адрес удаленного транспорта, к которому подключается сокет. Этот указатель должен быть указателем на конкретный тип структуры SOCKADDR, соответствующий семейству адресов, которое приложение WSK указало при создании сокета.

Flags

Этот параметр зарезервирован для использования системой. Приложение WSK должно задать для этого параметра нулевое значение.

[in, out] Irp

Указатель на выделенный вызывающим объектом IRP, который подсистема WSK использует для асинхронного завершения операции подключения. Дополнительные сведения об использовании IRP с функциями WSK см. в разделе Использование IRP с функциями ядра Winsock.

Возвращаемое значение

WskConnect возвращает один из следующих кодов NTSTATUS:

Код возврата Описание
STATUS_SUCCESS
Сокет успешно подключен к удаленному транспортному адресу. IRP будет завершена с состоянием успешного выполнения.
STATUS_PENDING
Подсистеме WSK не удалось подключить сокет немедленно. Подсистема WSK завершит IRP после подключения сокета к удаленному транспортному адресу. Состояние операции подключения будет возвращено в поле IoStatus.Status IRP.
STATUS_FILE_FORCED_CLOSED
Сокет больше не работает. IRP будет завершен с состоянием сбоя. Приложение WSK должно вызвать функцию WskCloseSocket , чтобы закрыть сокет как можно скорее.
Другие коды состояния
Произошла ошибка. IRP будет завершен с состоянием сбоя.

Комментарии

Приложение WSK может вызывать функцию WskConnect только для подключения или потокового сокета, который приложение ранее привязывало к локальному транспортному адресу, вызвав функцию WskBind .

Для потоковых сокетов после успешного вызова WskConnect в сокете потока он фиксируется в потоке, ориентированном на подключение, и может больше не вызывать функции прослушивания сокетов.

Приложение WSK может создавать, привязывать и подключать сокет, ориентированный на подключение, в одном вызове функции, вызывая функцию WskSocketConnect , а не функцию WskSocket , функцию WskBind , а затем функцию WskConnect . Мы рекомендуем вызывать функцию WskSocketConnect , если приложению WSK не нужно задать параметр сокета или выполнить операцию управления вводом-выводом перед привязкой или подключением сокета.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть wsk.h (включая Wsk.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

SOCKADDR

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskBind

WskCloseSocket

WskDisconnect

WskDisconnectEvent

WskSocket

WskSocketConnect