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


функция обратного вызова PFN_WSK_GET_ADDRESS_INFO (wsk.h)

Функция WskGetAddressInfo выполняет независимое от протокола преобразование имени узла в адрес транспорта.

Синтаксис

PFN_WSK_GET_ADDRESS_INFO PfnWskGetAddressInfo;

NTSTATUS PfnWskGetAddressInfo(
  [in]           PWSK_CLIENT Client,
  [in, optional] PUNICODE_STRING NodeName,
  [in, optional] PUNICODE_STRING ServiceName,
  [in, optional] ULONG NameSpace,
  [in, optional] GUID *Provider,
  [in, optional] PADDRINFOEXW Hints,
  [out]          PADDRINFOEXW *Result,
  [in, optional] PEPROCESS OwningProcess,
  [in, optional] PETHREAD OwningThread,
  [in, out]      PIRP Irp
)
{...}

Параметры

[in] Client

[in] Указатель на структуру WSK_CLIENT , возвращенную с помощью параметра WskProviderNpi объектаФункция WskCaptureProviderNPI.

[in, optional] NodeName

[in] Необязательный указатель на структуру UNICODE_STRING , содержащую строку Юникода, представляющую имя узла (узла) или строку числового адреса узла. Для интернет-протокола строка числового адреса узла представляет собой IPv4-адрес с точками или шестнадцатеричный адрес IPv6.

[in, optional] ServiceName

[in] Необязательный указатель на структуру UNICODE_STRING , содержащую строку Юникода, представляющую имя службы или номер порта.

[in, optional] NameSpace

[in] Необязательный идентификатор пространства имен, указывающий поставщиков пространства имен, которые запрашиваются. Запросы могут быть успешно выполнены только для поставщиков пространств имен, поддерживающих указанное пространство имен.

[in, optional] Provider

[in] Необязательный указатель на ИДЕНТИФИКАТОР GUID конкретного поставщика пространства имен, который требуется запрашивать.

[in, optional] Hints

[in] Необязательный указатель на структуру ADDRINFOEXW , которая предоставляет указания о типе сокета, который поддерживает вызывающий объект.

Структура ADDRINFOEXW определена в заголовке Ws2def.h. Он идентичен
Структура addrinfoex.

Важно Файл заголовка Ws2def.h автоматически включается в Wsk.h. Не используйте Ws2def.h напрямую.
 

[out] Result

[out] Указатель на буфер, выделенный вызывающим объектом, который получает связанный список одной или нескольких структур ADDRINFOEXW , представляющих сведения об ответе об узле.

Примечание Вызывающий объект должен вызвать функцию WskFreeAddressInfo , чтобы освободить этот указатель.
 
Структура ADDRINFOEXW определена в заголовке Ws2def.h. Он идентичен структуре addrinfoex .
Важно Файл заголовка Ws2def.h автоматически включается в Wsk.h. Не используйте Ws2def.h напрямую.
 

[in, optional] OwningProcess

[in] Необязательный указатель на процесс, из которого функция получает контекст безопасности. Этот контекст безопасности указывает контекст учетной записи пользователя, в котором функция обрабатывает запрос разрешения имен.

Если этот параметр имеет значение NULL, функция обрабатывает запрос разрешения имен в контексте предопределенной локальной учетной записи с минимальными привилегиями.

Если этот параметр не имеет значение NULL и для вызывающего потока действует токен олицетворения, эта функция завершается ошибкой и возвращает STATUS_INVALID_PARAMETER.

[in, optional] OwningThread

[in] Необязательный указатель на поток, из которого функция получает контекст безопасности. Этот параметр может иметь значение, отличное от NULL , только если Свойство OwningProcess не равно NULL. В противном случае эта функция завершается сбоем и возвращает STATUS_INVALID_PARAMETER.

Если этот параметр не имеет значение NULL и для вызывающего потока действует токен олицетворения, эта функция завершается ошибкой и возвращает STATUS_INVALID_PARAMETER.

[in, out] Irp

[вход/выход] Указатель на пакет запроса ввода-вывода (IRP), используемый для асинхронного выполнения запроса. По завершении запроса Irp ->Iostatus.Information будет содержать возвращенный код состояния.

Возвращаемое значение

WskGetAddressInfo возвращает один из следующих кодов NTSTATUS:

Код возврата Описание
STATUS_INVALID_PARAMETER
Указан недопустимый параметр.
STATUS_NO_MATCH
Не удается разрешить имя узла.
STATUS_SUCCESS
Функция успешно завершена. Если приложение WSK указало указатель на IRP в Параметр Irp , IRP будет завершен с состоянием успешного выполнения.
STATUS_PENDING
Подсистеме WSK не удалось выполнить функцию немедленно. Подсистема WSK завершит IRP после завершения операции управления. Состояние операции управления будет возвращено в поле IoStatus.Status IRP.
Другие коды состояния
Произошла ошибка. IRP будет завершен с состоянием сбоя.

Комментарии

Процесс, на который указывает параметр OwningProcess , или поток, на который указывает процесс OwningThread , указывает контекст безопасности для этой функции. Учетная запись пользователя, обозначенная контекстом безопасности, указывает контекст для запроса разрешения имен функции.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 7 и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть wsk.h (включая Wsk.h)
IRQL PASSIVE_LEVEL

См. также раздел

UNICODE_STRING

WSK_CLIENT

WskCaptureProviderNPI

WskFreeAddressInfo