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]指向通过 的 WskProviderNpi 参数返回的WSK_CLIENT结构的指针 WskCaptureProviderNPI 函数。

[in, optional] NodeName

[in]指向 UNICODE_STRING 结构的可选指针,该结构包含一个 Unicode 字符串,该字符串表示主机 (节点) 名称或数字主机地址字符串。 对于 Internet 协议,数字主机地址字符串是点十进制 IPv4 地址或 IPv6 十六进制地址。

[in, optional] ServiceName

[in]指向 UNICODE_STRING 结构的可选指针,该结构包含表示服务名称或端口号的 Unicode 字符串。

[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]指向函数从中检索安全上下文的线程的可选指针。 仅当 OwningProcess 为非 NULL 时,此参数才能为非 NULL。 否则,此函数将失败并返回STATUS_INVALID_PARAMETER。

如果此参数不是 NULL ,并且模拟令牌对调用线程有效,则此函数将失败并返回STATUS_INVALID_PARAMETER。

[in, out] Irp

[in/out]指向 I/O 请求数据包的指针 (IRP) 用于异步完成请求。 请求完成后, Irp ->Iostatus.Information 将保存返回的状态代码。

返回值

WskGetAddressInfo 返回以下 NTSTATUS 代码之一:

返回代码 说明
STATUS_INVALID_PARAMETER
指定的参数无效。
STATUS_NO_MATCH
无法解析主机名。
STATUS_SUCCESS
函数已成功完成。 如果 WSK 应用程序在 中指定了指向 IRP 的指针 Irp 参数,IRP 将以成功状态完成。
STATUS_PENDING
WSK 子系统无法立即完成函数。 WSK 子系统将在完成控制操作后完成 IRP。 控制操作的状态将在 IRP 的 IoStatus.Status 字段中返回。
其他状态代码
出现了错误。 IRP 将以失败状态完成。

注解

OwningProcess 参数指向的进程或 OwningThread 进程指向的线程指示此函数的安全上下文。 由安全上下文指示的用户帐户指示函数的名称解析请求的上下文。

要求

要求
最低受支持的客户端 适用于 Windows 7 及更高版本的 Windows 操作系统。
目标平台 通用
标头 wsk.h (包括 Wsk.h)
IRQL PASSIVE_LEVEL

另请参阅

UNICODE_STRING

WSK_CLIENT

WskCaptureProviderNPI

WskFreeAddressInfo