次の方法で共有


DnsQuery_A関数 (windns.h)

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

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

構文

DNS_STATUS DnsQuery_A(
  [in]                PCSTR       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

クエリが実行されるリソース レコード (RR)DNS レコードの種類 を表す値。 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 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー windns.h
Library Dnsapi.lib
[DLL] Dnsapi.dll

関連項目

DNS_RECORD

DnsQueryEx

DnsRecordListFree