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