DnsApi简单探索(3) DNS_QUERY_RESULT struct

来源:互联网 发布:json at position 1 编辑:程序博客网 时间:2024/05/22 12:31

DnsQueryEx()三个参数之一, 该结构包含Dns查询的返回结果, DNS_QUERY_REQUEST和DNS_QUERY_RESULT两个是主要参数, 基本查询只知道这俩参数就足够了.

DNS_QUERY_RESULT structure

DNS_QUERY_RESULT结构包含DNS查询结果

语法

typedef struct_DNS_QUERY_RESULT {  ULONG        Version;  DNS_STATUS   QueryStatus;  ULONG64      QueryOptions;  PDNS_RECORDS pQueryRecords;  PVOID        reserved;} DNS_QUERY_RESULT, *PDNS_QUERY_RESULT;


成员

Version

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

DNS_QUERY_REQUEST_VERSION1 (1)

QueryStatus

DnsQueryEx()的返回状态.

如果异步请求完成, 并且这个值通过DnsQueryEx()直接返回, 那么QueryStatus的值将包含DNS_REQUEST_PENDING.

如果同步请求完成, 或者这个值通过DNS_QUERY_COMPLETION_ROUTINE回调返回, 那么QueryStatus的值将包含ERROR_SUCCESS或者其他错误编号, 错误编号在Winerror.h中定义.

QueryOptions

包含一个DNS Query Options的位图(bitmap), 选项可以组合, 并且所有选项覆盖DNS_QUERY_STANDARD

pQueryRecords

指向DNS_RECORD的指针.

如果异步请求完成, 并且这个值通过DnsQueryEx()直接返回, 那么pQueryRecords 的值为NULL.

如果同步请求完成, 或者这个值通过DNS_QUERY_COMPLETION_ROUTINE回调返回, 那么pQueryRecords 的值将包含一个资源记录 (RR) 列表. 这些次元记录构成响应.

注意: 应用程序必须调用DnsRecordListFree释放返回的RR.

reserved

预留值, NULL.

0 0