次の方法で共有


DnsQueryEx 関数 (windns.h)

DnsQueryEx 関数は、DNS 名前空間への非同期ジェネリック クエリ インターフェイスです。 アプリケーション開発者に DNS クエリ解決インターフェイスを提供します。

DnsQueryと同様に、dnsQueryEx を使用して、DNS 名前空間への同期クエリを実行することもできます。

構文

DNS_STATUS DnsQueryEx(
  [in]                PDNS_QUERY_REQUEST pQueryRequest,
  [in, out]           PDNS_QUERY_RESULT  pQueryResults,
  [in, out, optional] PDNS_QUERY_CANCEL  pCancelHandle
);

パラメーター

[in] pQueryRequest

クエリ要求情報を含む DNS_QUERY_REQUEST または DNS_QUERY_REQUEST3 構造体へのポインター。

この構造体の pQueryCompleteCallback メンバーから DNS_QUERY_COMPLETION_ROUTINE コールバックを省略すると、DnsQueryEx が同期的に呼び出されます。
 

[in, out] pQueryResults

クエリの結果を含む DNS_QUERY_RESULT 構造体へのポインター。 入力時に、pQueryResults のメンバー バージョンを DNS_QUERY_RESULTS_VERSION1 し、他のすべてのメンバーを NULLする必要があります。 出力時に、残りのメンバーはクエリの完了の一部として入力されます。

非同期クエリの場合、アプリケーションは、DNS_QUERY_COMPLETION_ROUTINE コールバックが呼び出されるまで、この構造体を解放しないでください。 クエリが完了すると、DNS_QUERY_RESULT 構造体には、DnsRecordListFreeを使用して解放する必要がある DNS_RECORDS の一覧へのポインターが含まれます。
 

[in, out, optional] pCancelHandle

保留中の非同期クエリを取り消すために使用できる DNS_QUERY_CANCEL 構造体へのポインター。

DNS_QUERY_COMPLETION_ROUTINE コールバックが呼び出されるまで、アプリケーションはこの構造体を解放しないでください。
 

戻り値

DnsQueryEx 関数には、次の可能な戻り値があります。

リターン コード 形容
ERROR_SUCCESS
呼び出しが成功しました。
ERROR_INVALID_PARAMETER
pQueryRequest または pQueryResults パラメーターが初期化されていないか、正しくないバージョンが含まれています。
DNS RCODE
呼び出しの結果、RCODE エラーが発生しました。
DNS_INFO_NO_RECORDS
応答にレコードがありません。
DNS_REQUEST_PENDING
クエリは非同期的に完了します。

備考

DnsQueryEx の呼び出しが同期的に完了した場合 (つまり、関数の戻り値が DNS_REQUEST_PENDINGされていない場合)、pQueryResults メンバー pQueryRecords には DNS_RECORDS のリストへのポインターが含まれており、DnsQueryEx はエラーまたは成功を返します。

次の条件では、DnsQueryEx を する同期呼び出しが呼び出され、DNS コールバックは使用されません。

  • DNS_QUERY_COMPLETION_ROUTINE コールバックは、pQueryRequestの pQueryCompleteCallback メンバー 省略されます。
  • クエリは、ローカル コンピューター名と A または AAAA タイプリソース レコード (RR) です。
  • DnsQueryEx の呼び出しは、IPv4 または IPv6 アドレスを照会します。
  • DnsQueryEx を する呼び出しがエラーで返されます。
DnsQueryEx の呼び出しが非同期に完了した場合、クエリの結果は、pQueryRequestDNS_QUERY_COMPLETION_ROUTINE コールバックによって返され、pQueryResultsQueryStatus メンバーには DNS_REQUEST_PENDINGが含まれており、DnsQueryExDNS_REQUEST_PENDINGを返します。 アプリケーションは、DNS コールバックが成功するまで、DnsQueryEx に渡される pQueryResults 構造体を追跡する必要があります。 アプリケーションは、DnsQueryExによって返される pCancelHandle ハンドルを使用して非同期クエリを取り消すことができます。

pCancelHandle DnsQueryEx への非同期呼び出しから返され、DNS_QUERY_COMPLETION_ROUTINE DNS コールバックが呼び出されるまで pQueryContext 有効です。

注意 アプリケーションは、同じプロセス コンテキスト内の DNS_QUERY_COMPLETION_ROUTINE コールバックを介して、非同期 DnsQueryEx 完了を通知されます。
 

必要条件

要件 価値
サポートされる最小クライアント Windows 8 [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2012 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー windns.h
ライブラリ Dnsapi.lib
DLL Dnsapi.dll

関連項目