Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This function is the generic query interface to the DNS name space and provides application programmers with a DNS query resolution interface. Windows Embedded CE supports the Unicode encoding, as indicated by the *_Wsuffix.

Syntax

DNS_STATUS
WINAPI
DnsQuery_W(
	IN	PCWSTR		pszName,
	IN	WORD			wType,
	IN	DWORD		 Options, 					 
	IN	PIP4_ARRAY	aipServers			OPTIONAL,
	IN OUT  PDNS_RECORD *   ppQueryResults		OPTIONAL,
	IN OUT  PVOID *		 pReserved			 OPTIONAL
	);

Parameters

pszName

[in] Name of the owner of the record set being queried.

wType

[in] Numeric representation of the type of record set queried in host byte order, such as a value of 1 (0x0001) for an A record (DNS_TYPE_A). The following are the allowable values:

  • DNS_TYPE_A

  • DNS_TYPE_SRV

  • DNS_TYPE_AAAA

Options

[in] Query option. The DNS_QUERY_BYPASS_CACHE option bypasses the resolver cache on the lookup.

aipServers

[in] Specifies the DNS servers to which the query should be sent. If this is NULL, default DNS servers for the local computer are used. This parameter is optional. Windows Embedded CE supports a maximum of one server listed in this parameter. Attempts to specify multiple DNS servers result in failure.

ppQueryResultsSet

[in, out] Pointer to the pointer to the list of resource records that contain the response. This parameter is optional.

pReserved

Not supported on Windows Embedded CE.

Return Value

Returns ERROR_SUCCESS upon successful completion. Otherwise, it returns the appropriate DNS-specific error code as defined in Winerror.h.

Remarks

Callers of this function build a query using a fully qualified DNS name and resource record type, and set query options depending on the type of service desired.

Callers are responsible for freeing any returned resource record sets with DnsRecordListFree.

A DNS server may return multiple records in response to a query. A computer that is multihomed, for example, receives multiple A records for the same IP address. It is the caller's responsibility to use as many of the returned records as necessary.

Consider the following scenario, in which multiple returned records require additional activity on behalf of the application. A DnsQuery_Wfunction call is made for a multihomed computer and the application finds that the address associated with the first A record is not responding. The application should then attempt to use other IP addresses specified in the (additional) A records returned from the DnsQuery_Wfunction call.

Note:
DNS server will try to resolve the SRV record name before responding to the client; if the name cannot be resolved, this may take longer than the default time for the DNS timeout. For this reason, the user may have to increase the configurable DNS timeout delay.

Requirements

Header windns.h
Library dnsapi.lib
Windows Embedded CE Windows CE 5.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also