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


функция обратного вызова 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 использует для асинхронного завершения операции привязки. Дополнительные сведения об использовании IRP с функциями 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 необходимо вызвать перед вызовом функции WskConnect . Если приложение WSK указывает локальный адрес с подстановочными знаками, сетевой стек привязывает сокет к соответствующему локальному транспортному адресу, когда приложение вызывает WskConnect для подключения сокета к удаленному транспортному адресу. В такой ситуации локальный транспортный адрес определяется данными о маршрутизации системы.

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

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть wsk.h (включая 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