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


функция обратного вызова 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 для асинхронного завершения операции подключения. Дополнительные сведения об использовании irPs с функциями WSK см. в разделе Использование irPs с функциями ядра 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 (include Wsk.h)
IRQL <= DISPATCH_LEVEL

См. также

SOCKADDR

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskBind

WskCloseSocket

WskDisconnect

WskDisconnectEvent

WskSocket

WskSocketConnect