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