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


функция обратного вызова 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

[in/out] Указатель на пакет запроса ввода-вывода (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 (include Wsk.h)
IRQL PASSIVE_LEVEL

См. также

UNICODE_STRING

WSK_CLIENT

WskCaptureProviderNPI

WskFreeAddressInfo