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によって指
dnsQueryRaw
型: BYTE
DNS 生クエリを含むバッファーへのポインター。 このバッファーには、DNS クエリのワイヤ表現 (12 バイトのヘッダーの後に質問セクションが続く) が含まれています。 このバッファーは呼び出し元によって所有されており、DnsQueryRaw
dnsQueryName
型: PWSTR
dnsQueryTypeと組み合わせて使用する、クエリする DNS 名を表す文字列へのポインター。 この値が存在する場合は、dnsQueryRaw
dnsQueryType
型: USHORT
dnsQueryNameと組み合わせて使用される、クエリの DNS レコードの種類を表す値。 これらの値については、DNS レコードの種類に関する記事を参照してください。
queryOptions
型: ULONG64
使用するクエリ オプション。 DNS クエリ オプションのに記載されているように、
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
customServersSizeNULL
しない場合は、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
DNS 生クエリのソースのアドレス。
maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]
型: CHAR[] を
DNS 生クエリのソースのアドレス。 SOCKADDR_INET 型が定義されていないコードでは、maxSa 配列を使用できます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | windns.h |