Condividi tramite


funzione DnsQuery_A (windns.h)

Il tipo di funzione DnsQuery è l'interfaccia di query generica dello spazio dei nomi DNS e fornisce agli sviluppatori di applicazioni un'interfaccia di risoluzione delle query DNS. Come molte funzioni DNS, il tipo di funzione DnsQuery viene implementato in più moduli per facilitare la codifica di caratteri diversi. In base alla codifica dei caratteri coinvolta, usare una delle funzioni seguenti:

  • DnsQuery_A (per la codifica ANSI)
  • DnsQuery_W (per la codifica Unicode)
  • DnsQuery_UTF8 (per la codifica UTF-8)
Windows 8: la funzione DnsQueryEx deve essere usata se un'applicazione richiede query asincrone nello spazio dei nomi DNS.

Sintassi

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
);

Parametri

[in] pszName

Puntatore a una stringa che rappresenta il nome DNS da eseguire per la query.

[in] wType

Valore che rappresenta il tipo di record di risorsa (RR)DNS su cui viene eseguita una query. wType determina il formato dei dati puntati da ppQueryResultsSet. Ad esempio, se il valore di wType è DNS_TYPE_A, il formato dei dati a cui punta ppQueryResultsSet è DNS_A_DATA.

[in] Options

Valore che contiene una bitmap di opzioni di query DNS da usare nella query DNS. Le opzioni possono essere combinate e tutte le opzioni sostituiscono DNS_QUERY_STANDARD.

[in, out, optional] pExtra

Questo parametro è riservato per l'uso futuro e deve essere impostato su NULL.

[out, optional] ppQueryResults

facoltativo. Puntatore a un puntatore che punta all'elenco di RR che comprendono la risposta. Per altre informazioni, vedere la sezione Osservazioni.

[out, optional] pReserved

Questo parametro è riservato per l'uso futuro e deve essere impostato su NULL.

Valore restituito

Restituisce la conferma dell'esito positivo al completamento positivo. In caso contrario, restituisce il codice di errore specifico del DNS appropriato come definito in Winerror.h.

Commenti

Le applicazioni che chiamano la funzione DnsQuery compilano una query usando un nome DNS completo e un tipo RR (Resource Record) e impostano le opzioni di query a seconda del tipo di servizio desiderato. Quando l'opzione DNS_QUERY_STANDARD è impostata, DNS usa la cache del resolver, le query prima con UDP, quindi riprova con TCP se la risposta viene troncata e richiede che il server esegua una risoluzione ricorsiva per conto del client per risolvere la query.

Le applicazioni devono liberare set di RR restituiti con la funzione DnsRecordListFree .

Nota Quando si chiama uno dei tipi di funzione DnsQuery , tenere presente che un server DNS può restituire più record in risposta a una query. Un computer multihomed, ad esempio, riceverà più record A per lo stesso indirizzo IP. Il chiamante deve usare il numero di record restituiti in base alle esigenze.
 
Si consideri lo scenario seguente, in cui più record restituiti richiedono attività aggiuntive per conto dell'applicazione: viene eseguita una chiamata di funzione DnsQuery_A per un computer multihomed e l'applicazione rileva che l'indirizzo associato al primo record A non risponde. L'applicazione deve quindi tentare di usare altri indirizzi IP specificati nei record (aggiuntivi) restituiti dalla chiamata alla funzione DnsQuery_A .

Se il parametro lpstrName è impostato su NULL, la funzione DnsQuery ha esito negativo con l'errore INVALID_PARAMETER.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione windns.h
Libreria Dnsapi.lib
DLL Dnsapi.dll

Vedi anche

DNS_RECORD

DnsQueryEx

DnsRecordListFree