функция обратного вызова PFN_WSK_GET_REMOTE_ADDRESS (wsk.h)
Функция WskGetRemoteAddress извлекает удаленный транспортный адрес сокета, ориентированного на подключение или сокет потока.
Синтаксис
PFN_WSK_GET_REMOTE_ADDRESS PfnWskGetRemoteAddress;
NTSTATUS PfnWskGetRemoteAddress(
[in] PWSK_SOCKET Socket,
[out] PSOCKADDR RemoteAddress,
[in, out] PIRP Irp
)
{...}
Параметры
[in] Socket
Указатель на структуру WSK_SOCKET , указывающую объект сокета для запрашиваемого сокета.
[out] RemoteAddress
Указатель на буфер, выделенный вызывающим объектом, который получает адрес удаленного транспорта для сокета. Буфер должен находиться в нестраничной памяти. Буфер также должен быть достаточно большим, чтобы содержать конкретный тип структуры SOCKADDR, соответствующий семейству адресов, которое приложение WSK указало при создании сокета.
Для сокета, ориентированного на подключение, который приложение WSK принимало в прослушивающем сокете, семейство адресов совпадает с семейством адресов, которое приложение WSK указало при создании прослушивающего сокета.
[in, out] Irp
Указатель на выделенный вызывающим объектом IRP, который подсистема WSK использует для асинхронного выполнения операции извлечения. Дополнительные сведения об использовании IRP с функциями WSK см. в разделе Использование IRP с функциями ядра Winsock.
Возвращаемое значение
WskGetRemoteAddress возвращает один из следующих кодов NTSTATUS:
Код возврата | Описание |
---|---|
|
Адрес удаленного транспорта для сокета успешно получен. IRP будет завершена с состоянием успешного выполнения. |
|
Подсистеме WSK не удалось немедленно получить адрес удаленного транспорта для сокета. Подсистема WSK завершит IRP после получения удаленного транспортного адреса для сокета. Состояние операции извлечения будет возвращено в поле IoStatus.Status IRP. |
|
Сокет не подключен к удаленному адресу транспорта. IRP будет завершен с состоянием сбоя. |
|
Сокет больше не работает. IRP будет завершен с состоянием сбоя. Приложение WSK должно вызвать функцию WskCloseSocket , чтобы закрыть сокет как можно скорее. |
|
Произошла ошибка. IRP будет завершен с состоянием сбоя. |
Комментарии
Приложение WSK может вызывать функцию WskGetRemoteAddress только в сокете, ориентированном на подключение, или в сокете потока, подключенном к удаленному транспортному адресу. Сокет потока подключается к удаленному транспортному адресу путем вызова функции WskConnect . Сокет, ориентированный на подключение, подключается к удаленному транспортному адресу одним из следующих способов:
- Приложение WSK вызывает функцию WskConnect .
- Приложение WSK создает, привязывает и подключает сокет, вызывая функцию WskSocketConnect .
- Подсистема WSK подключает сокет, когда приложение WSK принимает входящий запрос на подключение к прослушивателю сокета.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | wsk.h (включая Wsk.h) |
IRQL | <= DISPATCH_LEVEL |