次の方法で共有


DNS_QUERY_RAW_REQUEST構造体 (windns.h)

大事な

一部の情報は、市販される前に大幅に変更される可能性があるプレリリース製品に関連しています。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。

DNS 生クエリ要求を表します (DnsQueryRaw参照)。

構文

typedef struct _DNS_QUERY_RAW_REQUEST {
  ULONG                            version;
  ULONG                            resultsVersion;
  ULONG                            dnsQueryRawSize;
  BYTE                             *dnsQueryRaw;
  PWSTR                            dnsQueryName;
  USHORT                           dnsQueryType;
  ULONG64                          queryOptions;
  ULONG                            interfaceIndex;
  DNS_QUERY_RAW_COMPLETION_ROUTINE queryCompletionCallback;
  VOID                             *queryContext;
  ULONG64                          queryRawOptions;
  ULONG                            customServersSize;
  DNS_CUSTOM_SERVER                *customServers;
  ULONG                            protocol;
  union {
    SOCKADDR_INET sourceAddr;
    CHAR          maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH];
  };
} DNS_QUERY_RAW_REQUEST;

メンバーズ

version

型: ULONG

この構造体のバージョン。 現在、DNS_QUERY_RAW_REQUEST_VERSION1 (0x1) のみが存在します。

resultsVersion

型: ULONG

完了コールバックで返された DNS_QUERY_RAW_RESULT 構造体の要求されたバージョン。 現在、DNS_QUERY_RAW_RESULT_VERSION1 (0x1) のみが存在します。

dnsQueryRawSize

型: ULONG

dnsQueryRawによって指 DNS 生クエリ バッファーのサイズ (バイト単位)。

dnsQueryRaw

型: BYTE

DNS 生クエリを含むバッファーへのポインター。 このバッファーには、DNS クエリのワイヤ表現 (12 バイトのヘッダーの後に質問セクションが続く) が含まれています。 このバッファーは呼び出し元によって所有されており、DnsQueryRaw 戻るまでのみ保持する必要があります。

dnsQueryName

型: PWSTR

dnsQueryTypeと組み合わせて使用する、クエリする DNS 名を表す文字列へのポインター。 この値が存在する場合は、dnsQueryRaw代わりに使用されます。

dnsQueryType

型: USHORT

dnsQueryNameと組み合わせて使用される、クエリの DNS レコードの種類を表す値。 これらの値については、DNS レコードの種類に関する記事を参照してください。

queryOptions

型: ULONG64

使用するクエリ オプション。 DNS クエリ オプションのに記載されているように、DnsQueryExと同じクエリ オプション 使用します。

interfaceIndex

型: ULONG

クエリを送信するインターフェイス インデックス。 0 の場合、すべてのインターフェイスが使用されます。

queryCompletionCallback

型: DNS_QUERY_RAW_COMPLETION_ROUTINE

クエリの終了時に呼び出されるコールバック関数へのポインター。 このフィールドは必須です。

queryContext

型: VOID

ユーザー コンテキストへのポインター。 これは、queryCompletionCallback 呼び出しでパラメーターとして提供されます。 このフィールドは必須です。

queryRawOptions

型: ULONG64

生クエリを変更するための追加オプション。

DNS_QUERY_RAW_OPTION_BEST_EFFORT_PARSE (0x1)。 生クエリをベスト エフォート形式で解析することを指定します。 つまり、DnsQueryRaw は、クエリ名や型を含む必要な情報を抽出できる場合に、予期した形式とは異なる形式の入力生クエリ (実装が認識していない新しいレコードの種類やヘッダー ビットを含む) の場合は失敗しません。 これにより、サーバーに送信されたクエリは、構成に関する呼び出し元のクエリのサブセットになります。

customServersSize

型: ULONG

customServersによって指 カスタム サーバーの数。

customServers

型: DNS_CUSTOM_SERVER*

customServersSizeサイズのカスタム サーバーの配列へのポインター。 このポインターは できます。この場合、customServersSize 0 にする必要があります。 NULLしない場合は、DnsQueryRaw 呼び出しが返されるまで、このポインターを保持する必要があります。

protocol

型: ULONG

dnsQueryRawのソース クエリに使用される DNS プロトコルと、呼び出し元が応答を想定しているもの。 これを使用すると、下の DNS システムで使用されているプロトコルに関係なく、元のクエリに一致するように DNS クエリ応答を変更できます。 たとえば、呼び出し元が UDP を指定し、DNS システムが HTTPS (DoH) 経由で DNS を使用することを決定し、UDP が許可するよりも大きい応答を取得した場合、API は、結果が大きすぎる場合に UDP サーバーが応答する動作に合わせてパケットを切り捨てます。 呼び出し元が TCP を要求する場合は、RFC 1035のセクション 4.2.2 で指定されているように、パケットの前に 2 バイトの長 必要があります。

使用できる値は、DNS_PROTOCOL_UDP (0x1) と DNS_PROTOCOL_TCP (0x2) です。

sourceAddr

型: SOCKADDR_INET

DNS 生クエリのソースのアドレス。

maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]

型: CHAR[] を します

DNS 生クエリのソースのアドレス。 SOCKADDR_INET 型が定義されていないコードでは、maxSa 配列を使用できます。

必要条件

要件 価値
ヘッダー windns.h