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


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

Функция WskBind привязывает сокет к локальному адресу транспорта.

Синтаксис

PFN_WSK_BIND PfnWskBind;

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

Параметры

[in] Socket

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

[in] LocalAddress

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

Flags

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

[in, out] Irp

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

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

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

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

Замечания

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Vista и более поздних версиях операционных систем Windows.
целевая платформа Всеобщий
заголовка wsk.h (include Wsk.h)
IRQL <= DISPATCH_LEVEL

См. также

SOCKADDR

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_DATAGRAM_DISPATCH

WSK_PROVIDER_LISTEN_DISPATCH

WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskCloseSocket

WskConnect

WskSocket