windns.h) (DNS_QUERY_RAW_RESULT 结构
重要
某些信息与预发行产品相关,该产品在商业发布之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示 DNS 原始查询结果, (查看 DNS_QUERY_RAW_COMPLETION_ROUTINE) 。
语法
typedef struct _DNS_QUERY_RAW_RESULT {
ULONG version;
DNS_STATUS queryStatus;
ULONG64 queryOptions;
ULONG64 queryRawOptions;
ULONG64 responseFlags;
ULONG queryRawResponseSize;
BYTE *queryRawResponse;
PDNS_RECORD queryRecords;
ULONG protocol;
union {
SOCKADDR_INET sourceAddr;
CHAR maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH];
};
} DNS_QUERY_RAW_RESULT;
成员
version
类型: ULONG
此结构的版本。 这与 DNS_QUERY_RAW_REQUEST::resultsVersion 中设置的内容匹配。 目前只有 DNS_QUERY_RAW_RESULT_VERSION1 (0x1) 存在。
queryStatus
类型: DNS_STATUS
查询的状态。
queryOptions
类型: ULONG64
在此查询中使用的查询选项。 由于系统配置,这些选项可能与请求中提供的查询选项不同。 当前选项在 DNS 查询选项中定义。
queryRawOptions
类型: ULONG64
应用于原始查询的其他选项。 另请参阅 DNS_QUERY_RAW_REQUEST::queryRawOptions。
responseFlags
类型: ULONG64
有关查询响应的其他标志。 当前未指定任何内容。
queryRawResponseSize
类型: ULONG
queryRawResponse 指向的 DNS 原始响应缓冲区中的字节计数。
queryRawResponse
类型: BYTE*
指向包含 DNS 查询响应的线路表示形式的缓冲区的指针-12 字节标头,后跟可变数量的记录。 此缓冲区的大小为 queryRawResponseSize 字节。
指针可能有效,也可能无效,具体取决于 queryStatus。 内部 DNS 错误将生成错误状态和 NULL
指针,但来自服务器的负面响应可能会生成错误状态和有效指针。 如果 queryStatus ERROR_SUCCESS,则指针有效。
queryRecords
类型: PDNS_RECORD
指向 DNS_RECORD 结构的指针。 它包含的记录与 queryRawResponse 中的记录相同,但解析为结构格式。
此指针的有效方式与 queryRawResponse 相同,因为它依赖于 queryStatus 值。
queryRecords 包含的记录与 queryRawResponse 中的记录相同,但解析为结构格式。 但是,如果响应中存在实现不知道的新型 DNS 记录,则 queryRecords 中不存在该记录;但它将出现在 queryRawResponse 中。
protocol
类型: ULONG
用于查询响应的 DNS 协议。 这不一定与 DNS_QUERY_RAW_REQUEST 中的协议匹配,因为 DNS 系统可能已根据配置更改了传出查询协议。 如果需要,将修改查询响应以匹配请求中的协议,以便调用方看到的行为是无缝的。 值 DNS_PROTOCOL_NO_WIRE 表示结果记录和数据是在内部生成的,DNS 系统未在网络上发送查询。
可能的值包括:
- DNS_PROTOCOL_UNSPECIFIED (0x0) 。 查询已完成,但未收到响应;例如在取消中。
- DNS_PROTOCOL_UDP (0x1) 。
- DNS_PROTOCOL_TCP (0x2) 。
- DNS_PROTOCOL_DOH (0x3) 。
- DNS_PROTOCOL_DOT (0x4) 。
- DNS_PROTOCOL_NO_WIRE (0x5) 。 查询已完成内联;例如,缓存中的记录。
sourceAddr
类型: SOCKADDR_INET
DNS 原始响应的源地址。
maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]
类型: CHAR[]
DNS 原始响应的源地址。 可以在未定义 SOCKADDR_INET 类型的代码中使用 maxSa 数组。
要求
要求 | 值 |
---|---|
Header | windns.h |