DNS_QUERY_RAW_RESULT結構 (windns.h)
重要
某些資訊與發行前版本產品有關,在正式發行前可能會大幅修改。 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 陣列。
規格需求
需求 | 值 |
---|---|
標頭 | windns.h |