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 システムが構成に基づいて送信クエリ プロトコルを変更した可能性があるため、これは必ずしも DNS_QUERY_RAW_REQUEST のプロトコルと一致するとは限りません。 クエリ応答は、必要に応じて、要求内のプロトコルと一致するように変更され、呼び出し元によって表示される動作がシームレスになります。 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 |