Home  >  Article  >  Database  >  DnsApi简单探索(2) DNS

DnsApi简单探索(2) DNS

WBOY
WBOYOriginal
2016-06-07 15:42:461352browse

前文提到DnsQueryEx()请求是需要用到三个参数, 其中DNS_QUERY_REQUEST便是第一个参数, 用来这是请求信息, 例如要请求的DNS服务器, 要请求的域名等等. DNS_QUERY_REQUEST structure DNS_QUERY_REQUEST 结构包含了 DnsQueryEx() 进行 DNS 请求所用到的参数 语

前文提到DnsQueryEx()请求是需要用到三个参数, 其中DNS_QUERY_REQUEST便是第一个参数, 用来这是请求信息, 例如要请求的DNS服务器, 要请求的域名等等.


DNS_QUERY_REQUEST structure

DNS_QUERY_REQUEST 结构包含了DnsQueryEx() 进行DNS请求所用到的参数

语法 

typedef struct _DNS_QUERY_REQUEST {
       ULONG                         Version;
       PCWSTR                        QueryName;
       WORD                          QueryType;
       ULONG64                       QueryOptions;
       PDNS_ADDR_ARRAY               pDnsServerList;
       ULONG                         InterfaceIndex;
       PDNS_QUERY_COMPLETION_ROUTINE pQueryCompletionCallback;
       PVOID                         pQueryContext;
} DNS_QUERY_REQUEST, *PDNS_QUERY_REQUEST;


成员

Version

结构版本号必须是下列之一:

DNS_QUERY_REQUEST_VERSION1 (1)

QueryName

一个指向要查询的DNS名的字符串的指针,

注意: 如果QueryName为空, 则使用本地DNS进行查询.

QueryType

表示资源记录(RR)DNS_Record_Type是否被请求的标志.

QueryType决定了DNS_QUERY_RESULT返回的pQueryRecord数的据格式.

例如, 如果wTypeDNS_TYPE_ApQueryRecords的数据格式为DNS_A_DATA.

QueryOptions

包含了DNS_Query_Options的位图(bitmap).

DNS_Query_Options选项可以组合, 并且所有选项覆盖DNS_QUERY_STANDARD

pDnsServerList

一个指向DNS_ADDR_ARRAY的指针, 包含了一个DNS_Servers列表.

InterfaceIndex

接口索引. 如果InterfaceIndex值为0, 则所有接口都将被考虑.

pQueryCompletionCallback

指向DNS_QUERY_COMPLETION_ROUTINE回调函数的指针, DNS_QUERY_COMPLETION_ROUTINE用于返回异步查询结果.

注意: 如果该值为NULL, 则DnsQueryEx同步机制.

pQueryContext

指向用户自定义数据的指针.


注意

某些定义, 如QueryType请参见微软官方.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn