次の方法で共有


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 配列を使用できます。

必要条件

要件 価値
ヘッダー windns.h