Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция WskGetNameInfo предоставляет независимо от протокола перевод с транспортного адреса на имя узла.
Синтаксис
PFN_WSK_GET_NAME_INFO PfnWskGetNameInfo;
NTSTATUS PfnWskGetNameInfo(
[in] PWSK_CLIENT Client,
[in] PSOCKADDR SockAddr,
[in] ULONG SockAddrLength,
[out, optional] PUNICODE_STRING NodeName,
[out, optional] PUNICODE_STRING ServiceName,
[in] ULONG Flags,
[in, optional] PEPROCESS OwningProcess,
[in, optional] PETHREAD OwningThread,
[in, out] PIRP Irp
)
{...}
Параметры
[in] Client
[in] Указатель на структуру WSK_CLIENT, возвращенную через параметр WskProviderNpi функцию WskCaptureProviderNPI.
[in] SockAddr
[in] Указатель на структуру SOCKADDR, содержащую IP-адрес и номер порта сокета.
[in] SockAddrLength
[in] Указывает длину буфера в байтах, на который указывает параметр SockAddr. Значение SockAddrLength не должно превышать размер структуры SOCKADDR_STORAGE.
[out, optional] NodeName
[out] Необязательный указатель на структуру UNICODE_STRING, содержащую строку Юникода, представляющую имя узла (узла). При успешном выполнении имя узла Юникода записывается как полное доменное имя (FQDN) по умолчанию. Вызывающий объект должен предоставить достаточно большой буфер UNICODE_STRING, чтобы сохранить имя узла Юникода, которое включает завершающий символ NULL. Если параметр nodeBuffer NULL, вызывающий объект не хочет получать строку имени узла. NodeBuffer и ServiceBuffer не должны быть null.
[out, optional] ServiceName
[out] Необязательный указатель на структуру UNICODE_STRING, содержащую строку Юникода, представляющую имя службы, связанное с номером порта. Вызывающий объект должен предоставить достаточно большой буфер UNICODE_STRING, чтобы содержать имя службы Юникода, включающее завершающий символ NULL. Если параметр NodeBufferNULL, вызывающий объект не хочет получать строку имени службы. NodeBuffer и ServiceBuffer не должны быть null.
[in] Flags
[in] Значение ULONG, используемое для настройки обработки этой функции.
Доступны следующие флаги:
NI_DGRAM
Указывает, что служба является службой диаграммы данных. Этот флаг необходим для нескольких служб, которые предоставляют разные номера портов для службы UDP и TCP.
NI_NAMEREQD
Указывает, что имя узла, которое не может быть разрешено DNS, приводит к ошибке.
NI_NOFQDN
Приводит к тому, что локальный узел имеет только его относительное различающееся имя (RDN), возвращенное в параметре NodeName.
NI_NUMERICHOST
Указывает, что функция возвращает числовую форму имени узла вместо его имени, обратный поиск DNS. Числовая форма имени узла также возвращается, если имя узла не может быть разрешено DNS.
NI_NUMERICSERV
Указывает, что функция возвращает номер порта службы вместо его имени. Кроме того, если имя узла не найдено для IP-адреса (например, 127.0.0.2), имя узла возвращается в качестве IP-адреса.
[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 будет содержать возвращенный код состояния.
Возвращаемое значение
WskGetNameInfo возвращает один из следующих кодов NTSTATUS:
Возвращаемый код | Описание |
---|---|
|
Указан недопустимый параметр. |
|
Не удается разрешить имя узла. |
|
Функция успешно завершена. Если приложение WSK указало указатель на IRP в параметр Irp, IRP будет завершен с состоянием успешного выполнения. |
|
Подсистема WSK не могла немедленно завершить функцию. Подсистема WSK завершит IRP после завершения операции управления. Состояние операции управления будет возвращено в поле IoStatus.Status IRP. |
|
Произошла ошибка. IRP будет завершен с состоянием сбоя. |
Замечания
Процесс, к которому указывает точка параметра OwningProcess или поток, к которому указывает точка процесса OwningThread, указывает контекст безопасности для этой функции. Учетная запись пользователя, указанная контекстом безопасности, указывает контекст для запроса разрешения имен функции.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows 7 и более поздних версиях операционных систем Windows. |
целевая платформа | Всеобщий |
заголовка | wsk.h (include Wsk.h) |
IRQL | PASSIVE_LEVEL |