функция обратного вызова 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:
Код возврата | Описание |
---|---|
|
Сокет успешно привязан к локальному транспортному адресу. IRP будет завершен с состоянием успешного выполнения. |
|
Подсистеме WSK не удалось привязать сокет немедленно. Подсистема WSK завершит IRP после привязки сокета к локальному адресу транспорта. Состояние операции привязки будет возвращено в поле IoStatus.Status IRP. |
|
Сокет больше не работает. 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 |