Condividi tramite


funzione DnsQuery_UTF8 (windns.h)

Il tipo di funzione DnsQuery è l'interfaccia di query generica per lo spazio dei nomi DNS e fornisce agli sviluppatori di applicazioni un'interfaccia di risoluzione delle query DNS. Analogamente a molte funzioni DNS, il tipo di funzione dnsQuery viene implementato in più forme per facilitare la codifica dei caratteri diversa. In base alla codifica dei caratteri interessata, 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_UTF8(
  [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 record di risorse (RR)tipo di record DNS su cui viene eseguita una query. wType determina il formato dei dati a cui punta 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 uso futuro e deve essere impostato su NULL.

[out, optional] ppQueryResults

Opzionale. Puntatore a un puntatore che punta all'elenco di richieste pull che costituiscono la risposta. Per altre informazioni, vedere la sezione Osservazioni.

[out, optional] pReserved

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

Valore restituito

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

Osservazioni

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 esegue nuovi tentativi con TCP se la risposta viene troncata e richiede al server di eseguire la risoluzione ricorsiva per conto del client per risolvere la query.

Le applicazioni devono liberare set 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 utilizzare il numero necessario di record restituiti.
 
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 A (aggiuntivi) restituiti dalla chiamata di funzione DnsQuery_A.

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

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione windns.h
libreria Dnsapi.lib
dll Dnsapi.dll

Vedere anche

DNS_RECORD

DnsQueryEx

DnsRecordListFree