Domain Name System (DNS)

Overview of the Domain Name System (DNS) technology.

To develop Domain Name System (DNS), you need these headers:

For programming guidance for this technology, see:

Enumerations

 
DNS_CHARSET

The DNS_CHARSET enumeration specifies the character set used.
DNS_CONFIG_TYPE

The DNS_CONFIG_TYPE enumeration provides DNS configuration type information.
DNS_FREE_TYPE

The DNS_FREE_TYPE enumeration specifies the type of data to free.
DNS_NAME_FORMAT

The DNS_NAME_FORMAT enumeration specifies name format information for DNS.
DNS_PROXY_INFORMATION_TYPE

The DNS_PROXY_INFORMATION_TYPE enumeration defines the proxy information type in the DNS_PROXY_INFORMATION structure.

Functions

 
DNS_QUERY_COMPLETION_ROUTINE

The DNS_QUERY_COMPLETION_ROUTINE callback is used to asynchronously return the results of a DNS query.
DNS_QUERY_RAW_COMPLETION_ROUTINE

The function signature of an asynchronous callback function that you implement. The system calls your implementation with the results of a query that you initiated by calling DnsQueryRaw.
DNS_SERVICE_BROWSE_CALLBACK

Used to asynchronously return the results of a DNS-SD query.
DNS_SERVICE_REGISTER_COMPLETE

Used to notify your application that service registration has completed.
DNS_SERVICE_RESOLVE_COMPLETE

Used to asynchronously return the results of a service resolve operation.
DnsAcquireContextHandle_A

The DnsAcquireContextHandle function type acquires a context handle to a set of credentials. (ANSI)
DnsAcquireContextHandle_W

The DnsAcquireContextHandle function type acquires a context handle to a set of credentials. (Unicode)
DnsCancelQuery

The DnsCancelQuery function can be used to cancel a pending query to the DNS namespace.
DnsCancelQueryRaw

Cancels a query that was initiated by calling DnsQueryRaw.
DnsExtractRecordsFromMessage_UTF8

The DnsExtractRecordsFromMessage function type extracts resource records (RR) from a DNS message, and stores those records in a DNS_RECORD structure. (DnsExtractRecordsFromMessage_UTF8)
DnsExtractRecordsFromMessage_W

The DnsExtractRecordsFromMessage function type extracts resource records (RR) from a DNS message, and stores those records in a DNS_RECORD structure. (DnsExtractRecordsFromMessage_W)
DnsFree

Frees memory allocated for DNS records that was obtained using the DnsQuery function.
DnsFreeCustomServers

Frees the array of custom servers that was returned from a previous call to DnsGetApplicationSettings.
DnsFreeProxyName

Frees memory allocated for the proxyName member of a DNS_PROXY_INFORMATION structure obtained using the DnsGetProxyInformation function.
DnsGetApplicationSettings

Retrieves the per-application DNS settings.
DnsGetProxyInformation

The DnsGetProxyInformation function returns the proxy information for a DNS server's name resolution policy table.
DnsModifyRecordsInSet_A

Function adds, modifies or removes a Resource Record (RR) set that may have been previously registered with DNS servers. (DnsModifyRecordsInSet_A)
DnsModifyRecordsInSet_UTF8

Function adds, modifies or removes a Resource Record (RR) set that may have been previously registered with DNS servers. (DnsModifyRecordsInSet_UTF8)
DnsModifyRecordsInSet_W

Function adds, modifies or removes a Resource Record (RR) set that may have been previously registered with DNS servers. (DnsModifyRecordsInSet_W)
DnsNameCompare

The DnsNameCompare function compares two DNS names. (DnsNameCompare_UTF8)
DnsNameCompare_A

The DnsNameCompare function compares two DNS names. (DnsNameCompare_A)
DnsNameCompare_W

The DnsNameCompare function compares two DNS names. (DnsNameCompare_W)
DnsQuery_A

Is the generic query interface to the DNS namespace, and provides application developers with a DNS query resolution interface. (DnsQuery_A)
DnsQuery_UTF8

Is the generic query interface to the DNS namespace, and provides application developers with a DNS query resolution interface. (DnsQuery_UTF8)
DnsQuery_W

Is the generic query interface to the DNS namespace, and provides application developers with a DNS query resolution interface. (DnsQuery_W)
DnsQueryConfig

The DnsQueryConfig function enables application programmers to query for the configuration of the local computer or a specific adapter.
DnsQueryEx

The asynchronous generic query interface to the DNS namespace, and provides application developers with a DNS query resolution interface.
DnsQueryRaw

Enables you to perform a DNS query that accepts either a raw packet containing a DNS query, or a query name and type.
DnsQueryRawResultFree

Frees the memory allocated to a DNS_QUERY_RAW_RESULT structure object.
DnsRecordCompare

The DnsRecordCompare function compares two DNS resource records (RR).
DnsRecordCopyEx

The DnsRecordCopyEx function creates a copy of a specified resource record (RR). The DnsRecordCopyEx function is also capable of converting the character encoding during the copy operation.
DnsRecordListFree

Frees memory allocated for DNS records obtained using the DnsQuery function.
DnsRecordSetCompare

The DnsRecordSetCompare function compares two RR sets.
DnsRecordSetCopyEx

The DnsRecordSetCopyEx function creates a copy of a specified resource record set. The DnsRecordSetCopyEx function is also capable of converting the character encoding during the copy operation.
DnsRecordSetDetach

The DnsRecordSetDetach function detaches the first record set from a specified list of DNS records.
DnsReleaseContextHandle

The DnsReleaseContextHandle function releases memory used to store the credentials of a specific account.
DnsReplaceRecordSetA

Replaces an existing resource record (RR) set. (DnsReplaceRecordSetA)
DnsReplaceRecordSetUTF8

Replaces an existing resource record (RR) set. (DnsReplaceRecordSetUTF8)
DnsReplaceRecordSetW

Replaces an existing resource record (RR) set. (DnsReplaceRecordSetW)
DnsServiceBrowse

Used to initiate a DNS-SD discovery for services running on the local network.
DnsServiceBrowseCancel

Used to cancel a running DNS-SD discovery query.
DnsServiceConstructInstance

Used to build a DNS_SERVICE_INSTANCE structure from data that describes it.
DnsServiceCopyInstance

Used to copy a DNS_SERVICE_INSTANCE structure.
DnsServiceDeRegister

Used to remove a registered service.
DnsServiceFreeInstance

Used to free the resources associated with a DNS_SERVICE_INSTANCE structure.
DnsServiceRegister

Used to register a discoverable service on this device. (DnsServiceRegister)
DnsServiceRegisterCancel

Used to cancel a pending registration operation.
DnsServiceResolve

Used to obtain more information about a service advertised on the local network.
DnsServiceResolveCancel

Used to cancel a running DNS-SD resolve query.
DnsSetApplicationSettings

Configures per-application DNS settings. This includes the ability to set per-application DNS servers either as fallback to the system configured servers, or exclusively.
DnsStartMulticastQuery

Used to register a discoverable service on this device. (DnsStartMulticastQuery)
DnsStopMulticastQuery

Used to stop a running DnsStartMulticastQuery operation.
DnsValidateName

The DnsValidateName macro (windns.h) function validates the status of a specified DNS name.
DnsValidateName_A

The DnsValidateName function validates the status of a specified DNS name. (DnsValidateName_A)
DnsValidateName_UTF8

The DnsValidateName_UTF8 function (windns.h) function validates the status of a specified DNS name.
DnsValidateName_W

The DnsValidateName function validates the status of a specified DNS name. (DnsValidateName_W)
DnsValidateServerStatus

The DnsValidateServerStatus function validates an IP address as a suitable DNS server.
DnsWriteQuestionToBuffer_UTF8

The DnsWriteQuestionToBuffer function type creates a DNS query message and stores it in a DNS_MESSAGE_BUFFER structure. (DnsWriteQuestionToBuffer_UTF8)
DnsWriteQuestionToBuffer_W

The DnsWriteQuestionToBuffer function type creates a DNS query message and stores it in a DNS_MESSAGE_BUFFER structure. (DnsWriteQuestionToBuffer_W)
MDNS_QUERY_CALLBACK

Used to asynchronously return the results of an mDNS query.

Structures

 
DNS_ADDR

A DNS_ADDR structure stores an IPv4 or IPv6 address.
DNS_ADDR_ARRAY

Stores an array of IPv4 or IPv6 addresses.
DNS_APPLICATION_SETTINGS

Represents per-application DNS settings.
DNS_HEADER

The DNS_HEADER structure contains DNS header information used when sending DNS messages as specified in section 4.1.1 of RFC 1035.
DNS_MESSAGE_BUFFER

The DNS_MESSAGE_BUFFER structure stores message information for DNS queries.
DNS_PROXY_INFORMATION

Contains the proxy information for a DNS server's name resolution policy table.
DNS_QUERY_CANCEL

A DNS_QUERY_CANCEL structure can be used to cancel an asynchronous DNS query.
DNS_QUERY_RAW_CANCEL

Represents a DNS raw query cancel handle.
DNS_QUERY_RAW_REQUEST

Represents a DNS raw query request (see DnsQueryRaw).
DNS_QUERY_RAW_RESULT

Represents a DNS raw query result (see DNS_QUERY_RAW_COMPLETION_ROUTINE).
DNS_QUERY_REQUEST

The DNS_QUERY_REQUEST structure contains the DNS query parameters used in a call to DnsQueryEx.
DNS_QUERY_REQUEST3

Contains the DNS query parameters used in a call to DnsQueryEx.
DNS_QUERY_RESULT

A DNS_QUERY_RESULT structure contains the DNS query results returned from a call to DnsQueryEx.
DNS_RRSET

The DNS_RRSET structure contains information about a DNS Resource Record (RR) set.
DNS_SERVICE_BROWSE_REQUEST

Contains the query parameters used in a call to DnsServiceBrowse.
DNS_SERVICE_CANCEL

Used to cancel an asynchronous DNS-SD operation.
DNS_SERVICE_INSTANCE

Represents a DNS service running on the network.
DNS_SERVICE_REGISTER_REQUEST

Contains the information necessary to advertise a service using DnsServiceRegister, or to stop advertising it using DnsServiceDeRegister.
DNS_SERVICE_RESOLVE_REQUEST

Contains the query parameters used in a call to DnsServiceResolve.
DNS_WIRE_QUESTION

The DNS_WIRE_QUESTION structure contains information about a DNS question transmitted across the network as specified in section 4.1.2 of RFC 1035..
DNS_WIRE_RECORD

The DNS_WIRE_RECORD structure contains information about a DNS wire record transmitted across the network as specified in section 4.1.3 of RFC 1035.
IP4_ARRAY

The IP4_ARRAY structure stores an array of IPv4 addresses.
MDNS_QUERY_HANDLE

Contains information related to an ongoing MDNS query. Your application must not modify its contents.
MDNS_QUERY_REQUEST

Contains the necessary information to perform an mDNS query.