DnsQuery_W関数 (windns.h)

DnsQuery 関数型は、DNS 名前空間への汎用クエリ インターフェイスであり、アプリケーション開発者に DNS クエリ解決インターフェイスを提供します。 多くの DNS 関数と同様に、DnsQuery 関数の種類は、異なる文字エンコードを容易にするために複数の形式で実装されます。 関連する文字エンコードに基づいて、次のいずれかの関数を使用します。

  • DnsQuery_A (ANSI エンコードの場合)
  • DnsQuery_W (Unicode エンコードの場合)
  • DnsQuery_UTF8 (UTF-8 エンコードの場合)
Windows 8: アプリケーションで DNS 名前空間への非同期クエリが必要な場合は、DnsQueryEx 関数を使用する必要があります。

構文

DNS_STATUS DnsQuery_W(
  [in]                PCWSTR      pszName,
  [in]                WORD        wType,
  [in]                DWORD       Options,
  [in, out, optional] PVOID       pExtra,
  [out, optional]     PDNS_RECORD *ppQueryResults,
  [out, optional]     PVOID       *pReserved
);

パラメーター

[in] pszName

クエリする DNS 名を表す文字列へのポインター。

[in] wType

クエリされる DNS レコードの種類リソース レコード (RR) を表す値。 wType は、ppQueryResultsSet指すデータの形式を決定します。 たとえば、wType の値が DNS_TYPE_Aの場合、ppQueryResultsSet が指 データの形式は DNS_A_DATA

[in] Options

DNS クエリで使用 DNS クエリ オプションのビットマップを含む値。 オプションを組み合わせて、すべてのオプションを DNS_QUERY_STANDARDオーバーライドできます。

[in, out, optional] pExtra

このパラメーターは将来使用するために予約されており、NULL設定する必要があります。

[out, optional] ppQueryResults

随意。 応答を構成する RR の一覧を指すポインターへのポインター。 詳細については、「解説」セクションを参照してください。

[out, optional] pReserved

このパラメーターは将来使用するために予約されており、NULL設定する必要があります。

戻り値

正常に完了すると、成功の確認を返します。 それ以外の場合は、Winerror.h で定義されている適切な DNS 固有のエラー コードを返します。

備考

DnsQuery 関数を呼び出すアプリケーションは、完全修飾 DNS 名とリソース レコード (RR) の種類を使用してクエリを作成し、必要なサービスの種類に応じてクエリ オプションを設定します。 DNS_QUERY_STANDARD オプションが設定されている場合、DNS はリゾルバー キャッシュを使用し、最初に UDP を使用してクエリを実行し、応答が切り捨てられた場合は TCP を使用して再試行し、クライアントに代わって再帰的解決を実行してクエリを解決するようサーバーに要求します。

アプリケーションは、DnsRecordListFree 関数を使用して、返された RR セットを解放する必要があります。

DnsQuery 関数型のいずれかを呼び出すときは、DNS サーバーがクエリに応答して複数のレコードを返すことがあることに注意してください。 たとえば、マルチホームのコンピューターは、同じ IP アドレスの複数の A レコードを受信します。 呼び出し元は、必要な数の返されたレコードを使用する必要があります。
 
返された複数のレコードがアプリケーションに代わって追加のアクティビティを必要とするシナリオを考えてみましょう。マルチホーム コンピューターに対して DnsQuery_A 関数呼び出しが行われ、アプリケーションは最初の A レコードに関連付けられているアドレスが応答していないと検出します。 その後、アプリケーションは、(追加の) DnsQuery_A 関数呼び出しから返されたレコードで指定された他の IP アドレスの使用を試みる必要があります。

lpstrName パラメーターが NULL設定されている場合、DnsQuery 関数はエラー INVALID_PARAMETERで失敗します。

必要条件

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

関連項目

DNS_RECORD

DnsQueryEx

DnsRecordListFree