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