共用方式為


DnsQuery_A函式 (windns.h)

DnsQuery函式類型是 DNS 命名空間的一般查詢介面,並提供應用程式開發人員 DNS 查詢解析介面。 就像許多 DNS 函式一樣, DnsQuery 函式類型會以多個形式實作,以利不同的字元編碼。 根據所涉及的字元編碼,使用下列其中一個函式:

  • ANSI編碼DnsQuery_A ()
  • Unicode編碼DnsQuery_W ()
  • UTF-8 編碼) 的DnsQuery_UTF8 (
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

值,表示查詢的 RESOURCE Record (RR) DNS 記錄類型wType 會決定 ppQueryResultsSet所指向的資料格式。 例如,如果 wType 的值 DNS_TYPE_AppQueryResultsSet 所指向的資料格式會 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函式呼叫 傳回的 A 記錄中指定的其他 IP 位址。

如果 lpstrName 參數設定為 NullDnsQuery 函式會失敗,並出現錯誤 INVALID_PARAMETER

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 windns.h
程式庫 Dnsapi.lib
Dll Dnsapi.dll

另請參閱

DNS_RECORD

DnsQueryEx

DnsRecordListFree