DnsQueryEx 函数 (windns.h)
DnsQueryEx 函数是 DNS 命名空间的异步泛型查询接口。 它为应用程序开发人员提供 DNS 查询解析接口。
与 DnsQuery一样,DnsQueryEx 也可用于向 DNS 命名空间进行同步查询。
语法
DNS_STATUS DnsQueryEx(
[in] PDNS_QUERY_REQUEST pQueryRequest,
[in, out] PDNS_QUERY_RESULT pQueryResults,
[in, out, optional] PDNS_QUERY_CANCEL pCancelHandle
);
参数
[in] pQueryRequest
指向包含查询请求信息的 DNS_QUERY_REQUEST 或 DNS_QUERY_REQUEST3 结构的指针。
[in, out] pQueryResults
指向包含查询结果的 DNS_QUERY_RESULT 结构的指针。 在输入时,pQueryResults 的 版本 成员必须 DNS_QUERY_RESULTS_VERSION1,并且所有其他成员都应 NULL。 在输出中,其余成员将在查询完成时填充。
[in, out, optional] pCancelHandle
指向可用于取消挂起的异步查询的 DNS_QUERY_CANCEL 结构的指针。
返回值
DnsQueryEx 函数具有以下可能的返回值:
返回代码 | 描述 |
---|---|
|
调用成功。 |
|
pQueryRequest 或 pQueryResults 参数未初始化或包含错误的版本。 |
|
调用导致 RCODE 错误。 |
|
响应中没有记录。 |
|
查询将以异步方式完成。 |
言论
如果对 DnsQueryEx 的调用 同步完成(即函数返回值未 DNS_REQUEST_PENDING),则 pQueryRecordspQueryResults 包含指向 DNS_RECORDS 列表的指针,DnsQueryEx 将返回错误或成功。
以下条件调用同步调用 DnsQueryEx,并且不使用 DNS 回调:
- DNS_QUERY_COMPLETION_ROUTINE 回调从 pQueryCompleteCallbackpQueryRequest成员中省略。
- 查询用于本地计算机名称和 A 或 AAAA 类型资源记录(RR)。
- DnsQueryEx 的调用 查询 IPv4 或 IPv6 地址。
- DnsQueryEx 的调用 返回错误。
pCancelHandle 从异步调用 DnsQueryEx 返回,pQueryContext 在调用 DNS_QUERY_COMPLETION_ROUTINE DNS 回调之前有效。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 [仅限桌面应用] |
支持的最低服务器 | Windows Server 2012 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | windns.h |
库 | Dnsapi.lib |
DLL | Dnsapi.dll |