共用方式為


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

值,表示查詢的 [資源記錄]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

自選。 指向組成回應之 R 清單之指標的指標。 如需詳細資訊,請參閱一節。

[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