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. |
DNS_SECTION The DNS_SECTION enumeration is used in record flags, and as an index into DNS wire message header section counts. |
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_A_DATA The DNS_A_DATA structure represents a DNS address (A) record as specified in section 3.4.1 of RFC 1035. |
DNS_AAAA_DATA The DNS_AAAA_DATA structure represents a DNS IPv6 (AAAA) record as specified in RFC 3596. |
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_ATMA_DATA The DNS_ATMA_DATA structure represents a DNS ATM address (ATMA) resource record (RR). |
DNS_CUSTOM_SERVER Represents a DNS custom server. A DNS_CUSTOM_SERVER object is passed to DnsQueryEx via the DNS_QUERY_REQUEST3 structure. |
DNS_DHCID_DATA Represents a DNS Dynamic Host Configuration Protocol Information (DHCID) resource record (RR) as specified in section 3 of RFC 4701. |
DNS_DS_DATA Represents a DS resource record (RR) as specified in section 2 of RFC 4034 and is used to verify the contents of DNS_DNSKEY_DATA. |
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_KEY_DATA The DNS_KEY_DATA structure represents a DNS key (KEY) resource record (RR) as specified in RFC 3445. |
DNS_LOC_DATA The DNS_LOC_DATA structure represents a DNS location (LOC) resource record (RR) as specified in RFC 1876. |
DNS_MESSAGE_BUFFER The DNS_MESSAGE_BUFFER structure stores message information for DNS queries. |
DNS_MINFO_DATAA The DNS_MINFO_DATA structure represents a DNS mail information (MINFO) record as specified in section 3.3.7 of RFC 1035. (ANSI) |
DNS_MINFO_DATAW The DNS_MINFO_DATA structure represents a DNS mail information (MINFO) record as specified in section 3.3.7 of RFC 1035. (Unicode) |
DNS_MX_DATAA The DNS_MX_DATA structure represents a DNS mail exchanger (MX) record as specified in section 3.3.9 of RFC 1035. (ANSI) |
DNS_MX_DATAW The DNS_MX_DATA structure represents a DNS mail exchanger (MX) record as specified in section 3.3.9 of RFC 1035. (Unicode) |
DNS_NAPTR_DATAA The DNS_NAPTR_DATA structure represents a Naming Authority Pointer (NAPTR) DNS Resource Record (RR) as specified in RFC 2915. (ANSI) |
DNS_NAPTR_DATAW The DNS_NAPTR_DATA structure represents a Naming Authority Pointer (NAPTR) DNS Resource Record (RR) as specified in RFC 2915. (Unicode) |
DNS_NSEC_DATAA Represents an NSEC resource record (RR) as specified in section 4 of RFC 4034. (ANSI) |
DNS_NSEC_DATAW Represents an NSEC resource record (RR) as specified in section 4 of RFC 4034. (Unicode) |
DNS_NULL_DATA The DNS_NULL_DATA structure represents NULL data for a DNS resource record as specified in section 3.3.10 of RFC 1035. |
DNS_NXT_DATAA The DNS_NXT_DATA structure represents a DNS next (NXT) resource record (RR) as specified in section 5 of RFC 2535. (ANSI) |
DNS_NXT_DATAW The DNS_NXT_DATA structure represents a DNS next (NXT) resource record (RR) as specified in section 5 of RFC 2535. (Unicode) |
DNS_OPT_DATA Represents a DNS Option (OPT) resource record (RR) as specified in section 4 of RFC 2671. |
DNS_PROXY_INFORMATION Contains the proxy information for a DNS server's name resolution policy table. |
DNS_PTR_DATAA The DNS_PTR_DATA structure represents a DNS pointer (PTR) record as specified in section 3.3.12 of RFC 1035. (ANSI) |
DNS_PTR_DATAW The DNS_PTR_DATA structure represents a DNS pointer (PTR) record as specified in section 3.3.12 of RFC 1035. (Unicode) |
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_RECORD_FLAGS The DNS_RECORD_FLAGS structure is used to set flags for use in the DNS_RECORD structure. |
DNS_RECORDA Stores a DNS resource record (RR). (ANSI) |
DNS_RECORDW Stores a DNS resource record (RR). (Unicode) |
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_SIG_DATAA Structure represents a DNS Security Extensions (DNSSEC) cryptographic signature (SIG) resource record (RR) as specified in RFC 4034. (ANSI) |
DNS_SIG_DATAW Structure represents a DNS Security Extensions (DNSSEC) cryptographic signature (SIG) resource record (RR) as specified in RFC 4034. (Unicode) |
DNS_SOA_DATAA The DNS_SOA_DATA structure represents a DNS start of authority (SOA) record as specified in section 3.3.13 of RFC 1035. (ANSI) |
DNS_SOA_DATAW The DNS_SOA_DATA structure represents a DNS start of authority (SOA) record as specified in section 3.3.13 of RFC 1035. (Unicode) |
DNS_SRV_DATAA The DNS_SRV_DATA structure represents a DNS service (SRV) record as specified in RFC 2782. (ANSI) |
DNS_SRV_DATAW The DNS_SRV_DATA structure represents a DNS service (SRV) record as specified in RFC 2782. (Unicode) |
DNS_TKEY_DATAA The DNS_TKEY_DATA structure represents a DNS TKEY resource record, used to establish and delete an algorithm's shared-secret keys between a DNS resolver and server as specified in RFC 2930. (ANSI) |
DNS_TKEY_DATAW The DNS_TKEY_DATA structure represents a DNS TKEY resource record, used to establish and delete an algorithm's shared-secret keys between a DNS resolver and server as specified in RFC 2930. (Unicode) |
DNS_TSIG_DATAA The DNS_TSIG_DATA structure represents a secret key transaction authentication (TSIG) resource record (RR) as specified in RFC 2845 and RFC 3645. (ANSI) |
DNS_TSIG_DATAW The DNS_TSIG_DATA structure represents a secret key transaction authentication (TSIG) resource record (RR) as specified in RFC 2845 and RFC 3645. (Unicode) |
DNS_TXT_DATAA The DNS_TXT_DATA structure represents a DNS text (TXT) record as specified in section 3.3.14 of RFC 1035. (ANSI) |
DNS_TXT_DATAW The DNS_TXT_DATA structure represents a DNS text (TXT) record as specified in section 3.3.14 of RFC 1035. (Unicode) |
DNS_WINS_DATA The DNS_WINS_DATA structure represents a DNS Windows Internet Name Service (WINS) record. |
DNS_WINSR_DATAA The DNS_WINSR_DATA structure represents a DNS Windows Internet Name Service reverse-lookup (WINSR) record. (ANSI) |
DNS_WINSR_DATAW The DNS_WINSR_DATA structure represents a DNS Windows Internet Name Service reverse-lookup (WINSR) record. (Unicode) |
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. |
DNS_WKS_DATA The DNS_WKS_DATA structure represents a DNS well-known services (WKS) record as specified in section 3.4.2 of RFC 1035. |
IP4_ARRAY The IP4_ARRAY structure stores an array of IPv4 addresses. |
IP6_ADDRESS The IP6_ADDRESS structure stores an IPv6 address. (IP6_ADDRESS) |
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. |