функция обратного вызова 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 для асинхронного выполнения операции извлечения. Дополнительные сведения об использовании irPs с функциями WSK см. в разделе Использование irPs с функциями ядра 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 (include Wsk.h) |
IRQL | <= DISPATCH_LEVEL |