| windns.h (6.0.6002.18005-Windows 6.0) | | windns.h (6.1.7601.17570-Windows 7.0) |
| | |
| skipping to change at line 41 | | skipping to change at line 41 |
| // | | // |
| // Define QWORD -- not yet defined globally | | // Define QWORD -- not yet defined globally |
| // | | // |
| | |
| typedef unsigned __int64 QWORD, *PQWORD; | | typedef unsigned __int64 QWORD, *PQWORD; |
| | |
| // | | // |
| // DNS public types | | // DNS public types |
| // | | // |
| | |
|
| typedef LONG DNS_STATUS, *PDNS_STATUS; | | typedef __success(return == 0) LONG DNS_STATUS; |
| | typedef DNS_STATUS *PDNS_STATUS; |
| | |
| // | | // |
| // IP Address | | // IP Address |
| // | | // |
| | |
| typedef DWORD IP4_ADDRESS, *PIP4_ADDRESS; | | typedef DWORD IP4_ADDRESS, *PIP4_ADDRESS; |
| | |
| #define SIZEOF_IP4_ADDRESS (4) | | #define SIZEOF_IP4_ADDRESS (4) |
| #define IP4_ADDRESS_STRING_LENGTH (16) | | #define IP4_ADDRESS_STRING_LENGTH (16) |
| | |
| | |
| skipping to change at line 237 | | skipping to change at line 238 |
| | |
| // | | // |
| // DNS Text string limited by size representable | | // DNS Text string limited by size representable |
| // in a single byte length field | | // in a single byte length field |
| | |
| #define DNS_MAX_TEXT_STRING_LENGTH (255) | | #define DNS_MAX_TEXT_STRING_LENGTH (255) |
| // | | // |
| // DNS On-The-Wire Structures | | // DNS On-The-Wire Structures |
| // | | // |
| | |
|
| #pragma pack(1) | | #pragma pack(push, 1) |
| | |
| // | | // |
| // DNS Message Header | | // DNS Message Header |
| // | | // |
| | |
| typedef struct _DNS_HEADER | | typedef struct _DNS_HEADER |
| { | | { |
| WORD Xid; | | WORD Xid; |
| | |
| BYTE RecursionDesired : 1; | | BYTE RecursionDesired : 1; |
| BYTE Truncation : 1; | | BYTE Truncation : 1; |
| BYTE Authoritative : 1; | | BYTE Authoritative : 1; |
| BYTE Opcode : 4; | | BYTE Opcode : 4; |
| BYTE IsResponse : 1; | | BYTE IsResponse : 1; |
| | |
| BYTE ResponseCode : 4; | | BYTE ResponseCode : 4; |
|
| BYTE Reserved : 3; | | BYTE CheckingDisabled : 1; |
| | BYTE AuthenticatedData : 1; |
| | BYTE Reserved : 1; |
| BYTE RecursionAvailable : 1; | | BYTE RecursionAvailable : 1; |
| | |
| WORD QuestionCount; | | WORD QuestionCount; |
| WORD AnswerCount; | | WORD AnswerCount; |
| WORD NameServerCount; | | WORD NameServerCount; |
| WORD AdditionalCount; | | WORD AdditionalCount; |
| } | | } |
| DNS_HEADER, *PDNS_HEADER; | | DNS_HEADER, *PDNS_HEADER; |
| | |
|
| | typedef struct _DNS_HEADER_EXT |
| | { |
| | WORD Reserved : 15; |
| | WORD DnssecOk : 1; |
| | BYTE chRcode; |
| | BYTE chVersion; |
| | } |
| | DNS_HEADER_EXT, *PDNS_HEADER_EXT; |
| | |
| // | | // |
| // Flags as WORD | | // Flags as WORD |
| // | | // |
| | |
| #define DNS_HEADER_FLAGS(pHead) ( *((PWORD)(pHead)+1) ) | | #define DNS_HEADER_FLAGS(pHead) ( *((PWORD)(pHead)+1) ) |
| | |
| // | | // |
| // Byte flip DNS header to\from host order. | | // Byte flip DNS header to\from host order. |
| // | | // |
| // Note that this does NOT flip flags, as definition above defines | | // Note that this does NOT flip flags, as definition above defines |
| | |
| skipping to change at line 339 | | skipping to change at line 351 |
| | |
| WORD RecordType; | | WORD RecordType; |
| WORD RecordClass; | | WORD RecordClass; |
| DWORD TimeToLive; | | DWORD TimeToLive; |
| WORD DataLength; | | WORD DataLength; |
| | |
| // Followed by record data | | // Followed by record data |
| } | | } |
| DNS_WIRE_RECORD, *PDNS_WIRE_RECORD; | | DNS_WIRE_RECORD, *PDNS_WIRE_RECORD; |
| | |
|
| #pragma pack() | | #pragma pack(pop) |
| | |
| // | | // |
| // DNS Query Types | | // DNS Query Types |
| // | | // |
| | |
| #define DNS_OPCODE_QUERY 0 // Query | | #define DNS_OPCODE_QUERY 0 // Query |
| #define DNS_OPCODE_IQUERY 1 // Obsolete: IP to name | | #define DNS_OPCODE_IQUERY 1 // Obsolete: IP to name |
| #define DNS_OPCODE_SERVER_STATUS 2 // Obsolete: DNS ping | | #define DNS_OPCODE_SERVER_STATUS 2 // Obsolete: DNS ping |
| #define DNS_OPCODE_UNKNOWN 3 // Unknown | | #define DNS_OPCODE_UNKNOWN 3 // Unknown |
| #define DNS_OPCODE_NOTIFY 4 // Notify | | #define DNS_OPCODE_NOTIFY 4 // Notify |
| | |
| skipping to change at line 509 | | skipping to change at line 521 |
| | |
| // DNAME Draft (DNAME) | | // DNAME Draft (DNAME) |
| #define DNS_TYPE_DNAME 0x0027 // 39 | | #define DNS_TYPE_DNAME 0x0027 // 39 |
| | |
| // Eastlake (Kitchen Sink) | | // Eastlake (Kitchen Sink) |
| #define DNS_TYPE_SINK 0x0028 // 40 | | #define DNS_TYPE_SINK 0x0028 // 40 |
| | |
| // RFC 2671 (EDNS OPT) | | // RFC 2671 (EDNS OPT) |
| #define DNS_TYPE_OPT 0x0029 // 41 | | #define DNS_TYPE_OPT 0x0029 // 41 |
| | |
|
| | // RFC 4034 (DNSSEC DS) |
| | #define DNS_TYPE_DS 0x002b // 43 |
| | |
| | // RFC 4034 (DNSSEC RRSIG) |
| | #define DNS_TYPE_RRSIG 0x002e // 46 |
| | |
| | // RFC 4034 (DNSSEC NSEC) |
| | #define DNS_TYPE_NSEC 0x002f // 47 |
| | |
| | // RFC 4034 (DNSSEC DNSKEY) |
| | #define DNS_TYPE_DNSKEY 0x0030 // 48 |
| | |
| | // RFC 4701 (DHCID) |
| | #define DNS_TYPE_DHCID 0x0031 // 49 |
| | |
| // | | // |
| // IANA Reserved | | // IANA Reserved |
| // | | // |
| | |
| #define DNS_TYPE_UINFO 0x0064 // 100 | | #define DNS_TYPE_UINFO 0x0064 // 100 |
| #define DNS_TYPE_UID 0x0065 // 101 | | #define DNS_TYPE_UID 0x0065 // 101 |
| #define DNS_TYPE_GID 0x0066 // 102 | | #define DNS_TYPE_GID 0x0066 // 102 |
| #define DNS_TYPE_UNSPEC 0x0067 // 103 | | #define DNS_TYPE_UNSPEC 0x0067 // 103 |
| | |
| // | | // |
| | |
| skipping to change at line 591 | | skipping to change at line 618 |
| #define DNS_RTYPE_SRV 0x2100 // 33 | | #define DNS_RTYPE_SRV 0x2100 // 33 |
| #define DNS_RTYPE_ATMA 0x2200 // 34 | | #define DNS_RTYPE_ATMA 0x2200 // 34 |
| #define DNS_RTYPE_NAPTR 0x2300 // 35 | | #define DNS_RTYPE_NAPTR 0x2300 // 35 |
| #define DNS_RTYPE_KX 0x2400 // 36 | | #define DNS_RTYPE_KX 0x2400 // 36 |
| #define DNS_RTYPE_CERT 0x2500 // 37 | | #define DNS_RTYPE_CERT 0x2500 // 37 |
| #define DNS_RTYPE_A6 0x2600 // 38 | | #define DNS_RTYPE_A6 0x2600 // 38 |
| #define DNS_RTYPE_DNAME 0x2700 // 39 | | #define DNS_RTYPE_DNAME 0x2700 // 39 |
| #define DNS_RTYPE_SINK 0x2800 // 40 | | #define DNS_RTYPE_SINK 0x2800 // 40 |
| #define DNS_RTYPE_OPT 0x2900 // 41 | | #define DNS_RTYPE_OPT 0x2900 // 41 |
| | |
|
| | #define DNS_RTYPE_DS 0x2b00 // 43 |
| | #define DNS_RTYPE_RRSIG 0x2e00 // 46 |
| | #define DNS_RTYPE_NSEC 0x2f00 // 47 |
| | #define DNS_RTYPE_DNSKEY 0x3000 // 48 |
| | #define DNS_RTYPE_DHCID 0x3100 // 49 |
| | |
| // | | // |
| // IANA Reserved | | // IANA Reserved |
| // | | // |
| | |
| #define DNS_RTYPE_UINFO 0x6400 // 100 | | #define DNS_RTYPE_UINFO 0x6400 // 100 |
| #define DNS_RTYPE_UID 0x6500 // 101 | | #define DNS_RTYPE_UID 0x6500 // 101 |
| #define DNS_RTYPE_GID 0x6600 // 102 | | #define DNS_RTYPE_GID 0x6600 // 102 |
| #define DNS_RTYPE_UNSPEC 0x6700 // 103 | | #define DNS_RTYPE_UNSPEC 0x6700 // 103 |
| | |
| // | | // |
| | |
| skipping to change at line 650 | | skipping to change at line 683 |
| #define DNS_ATMA_AESA_ADDR_LENGTH (20) | | #define DNS_ATMA_AESA_ADDR_LENGTH (20) |
| #define DNS_ATMA_MAX_RECORD_LENGTH (DNS_ATMA_MAX_ADDR_LENGTH+1) | | #define DNS_ATMA_MAX_RECORD_LENGTH (DNS_ATMA_MAX_ADDR_LENGTH+1) |
| | |
| // | | // |
| // DNSSEC defs | | // DNSSEC defs |
| // | | // |
| | |
| // DNSSEC algorithms | | // DNSSEC algorithms |
| | |
| #define DNSSEC_ALGORITHM_RSAMD5 1 | | #define DNSSEC_ALGORITHM_RSAMD5 1 |
|
| | #define DNSSEC_ALGORITHM_RSASHA1 5 |
| #define DNSSEC_ALGORITHM_NULL 253 | | #define DNSSEC_ALGORITHM_NULL 253 |
| #define DNSSEC_ALGORITHM_PRIVATE 254 | | #define DNSSEC_ALGORITHM_PRIVATE 254 |
| | |
| // DNSSEC KEY protocol table | | // DNSSEC KEY protocol table |
| | |
| #define DNSSEC_PROTOCOL_NONE 0 | | #define DNSSEC_PROTOCOL_NONE 0 |
| #define DNSSEC_PROTOCOL_TLS 1 | | #define DNSSEC_PROTOCOL_TLS 1 |
| #define DNSSEC_PROTOCOL_EMAIL 2 | | #define DNSSEC_PROTOCOL_EMAIL 2 |
| #define DNSSEC_PROTOCOL_DNSSEC 3 | | #define DNSSEC_PROTOCOL_DNSSEC 3 |
| #define DNSSEC_PROTOCOL_IPSEC 4 | | #define DNSSEC_PROTOCOL_IPSEC 4 |
| | |
| skipping to change at line 776 | | skipping to change at line 810 |
| | |
| // In XP-SP1 (Server.net) | | // In XP-SP1 (Server.net) |
| } | | } |
| DNS_CONFIG_TYPE; | | DNS_CONFIG_TYPE; |
| | |
| // | | // |
| // Config API flags | | // Config API flags |
| // | | // |
| | |
| // | | // |
|
| // Causes config info to be allocated. | | // DNS_CONFIG_FLAG_ALLOC -- Causes config info to be allocated. |
| // Free with DnsFree(). | | // Free with LocalFree(). |
| // | | // |
|
| | | |
| #define DNS_CONFIG_FLAG_ALLOC (0x00000001) | | #define DNS_CONFIG_FLAG_ALLOC (0x00000001) |
| | |
| DNS_STATUS | | DNS_STATUS |
| WINAPI | | WINAPI |
| DnsQueryConfig( | | DnsQueryConfig( |
| __in DNS_CONFIG_TYPE Config, | | __in DNS_CONFIG_TYPE Config, |
| __in DWORD Flag, | | __in DWORD Flag, |
| __in_opt PCWSTR pwsAdapterName, | | __in_opt PCWSTR pwsAdapterName, |
| __in_opt PVOID pReserved, | | __in_opt PVOID pReserved, |
| __out_bcount_part(*pBufLen, *pBufLen) PVOID pBuffer, | | __out_bcount_part(*pBufLen, *pBufLen) PVOID pBuffer, |
| | |
| skipping to change at line 921 | | skipping to change at line 954 |
| DNS_WKS_DATA, *PDNS_WKS_DATA; | | DNS_WKS_DATA, *PDNS_WKS_DATA; |
| | |
| typedef struct | | typedef struct |
| { | | { |
| IP6_ADDRESS Ip6Address; | | IP6_ADDRESS Ip6Address; |
| } | | } |
| DNS_AAAA_DATA, *PDNS_AAAA_DATA; | | DNS_AAAA_DATA, *PDNS_AAAA_DATA; |
| | |
| typedef struct | | typedef struct |
| { | | { |
|
| PWSTR pNameSigner; | | |
| WORD wTypeCovered; | | WORD wTypeCovered; |
| BYTE chAlgorithm; | | BYTE chAlgorithm; |
| BYTE chLabelCount; | | BYTE chLabelCount; |
| DWORD dwOriginalTtl; | | DWORD dwOriginalTtl; |
| DWORD dwExpiration; | | DWORD dwExpiration; |
| DWORD dwTimeSigned; | | DWORD dwTimeSigned; |
| WORD wKeyTag; | | WORD wKeyTag; |
|
| WORD Pad; // keep byte field aligned | | WORD wSignatureLength; |
| | PWSTR pNameSigner; |
| BYTE Signature[1]; | | BYTE Signature[1]; |
| } | | } |
|
| DNS_SIG_DATAW, *PDNS_SIG_DATAW; | | DNS_SIG_DATAW, *PDNS_SIG_DATAW, DNS_RRSIG_DATAW, *PDNS_RRSIG_DATAW; |
| | |
| typedef struct | | typedef struct |
| { | | { |
|
| PSTR pNameSigner; | | |
| WORD wTypeCovered; | | WORD wTypeCovered; |
| BYTE chAlgorithm; | | BYTE chAlgorithm; |
| BYTE chLabelCount; | | BYTE chLabelCount; |
| DWORD dwOriginalTtl; | | DWORD dwOriginalTtl; |
| DWORD dwExpiration; | | DWORD dwExpiration; |
| DWORD dwTimeSigned; | | DWORD dwTimeSigned; |
| WORD wKeyTag; | | WORD wKeyTag; |
|
| WORD Pad; // keep byte field aligned | | WORD wSignatureLength; |
| | PSTR pNameSigner; |
| BYTE Signature[1]; | | BYTE Signature[1]; |
| } | | } |
|
| DNS_SIG_DATAA, *PDNS_SIG_DATAA; | | DNS_SIG_DATAA, *PDNS_SIG_DATAA, DNS_RRSIG_DATAA, *PDNS_RRSIG_DATAA; |
| | |
| typedef struct | | typedef struct |
| { | | { |
| WORD wFlags; | | WORD wFlags; |
| BYTE chProtocol; | | BYTE chProtocol; |
| BYTE chAlgorithm; | | BYTE chAlgorithm; |
|
| | WORD wKeyLength; |
| | WORD wPad; // keep byte field aligned |
| BYTE Key[1]; | | BYTE Key[1]; |
| } | | } |
|
| DNS_KEY_DATA, *PDNS_KEY_DATA; | | DNS_KEY_DATA, *PDNS_KEY_DATA, DNS_DNSKEY_DATA, *PDNS_DNSKEY_DATA; |
| | |
| | typedef struct |
| | { |
| | DWORD dwByteCount; |
| | #ifdef MIDL_PASS |
| | [size_is(dwByteCount)] BYTE DHCID[]; |
| | #else |
| | BYTE DHCID[1]; |
| | #endif |
| | } |
| | DNS_DHCID_DATA, *PDNS_DHCID_DATA; |
| | |
| | typedef struct |
| | { |
| | PWSTR pNextDomainName; |
| | WORD wTypeBitMapsLength; |
| | WORD wPad; // keep byte field aligned |
| | BYTE TypeBitMaps[1]; |
| | } |
| | DNS_NSEC_DATAW, *PDNS_NSEC_DATAW; |
| | |
| | typedef struct |
| | { |
| | PSTR pNextDomainName; |
| | WORD wTypeBitMapsLength; |
| | WORD wPad; // keep byte field aligned |
| | BYTE TypeBitMaps[1]; |
| | } |
| | DNS_NSEC_DATAA, *PDNS_NSEC_DATAA; |
| | |
| | typedef struct |
| | { |
| | WORD wKeyTag; |
| | BYTE chAlgorithm; |
| | BYTE chDigestType; |
| | WORD wDigestLength; |
| | WORD wPad; // keep byte field aligned |
| | BYTE Digest[1]; |
| | } |
| | DNS_DS_DATA, *PDNS_DS_DATA; |
| | |
| | typedef struct |
| | { |
| | WORD wDataLength; |
| | WORD wPad; // keep byte field aligned |
| | BYTE Data[1]; |
| | } |
| | DNS_OPT_DATA, *PDNS_OPT_DATA; |
| | |
| typedef struct | | typedef struct |
| { | | { |
| WORD wVersion; | | WORD wVersion; |
| WORD wSize; | | WORD wSize; |
| WORD wHorPrec; | | WORD wHorPrec; |
| WORD wVerPrec; | | WORD wVerPrec; |
| DWORD dwLatitude; | | DWORD dwLatitude; |
| DWORD dwLongitude; | | DWORD dwLongitude; |
| DWORD dwAltitude; | | DWORD dwAltitude; |
| | |
| skipping to change at line 1155 | | skipping to change at line 1238 |
| #ifdef UNICODE | | #ifdef UNICODE |
| typedef DNS_PTR_DATAW DNS_PTR_DATA, *PDNS_PTR_DATA; | | typedef DNS_PTR_DATAW DNS_PTR_DATA, *PDNS_PTR_DATA; |
| typedef DNS_SOA_DATAW DNS_SOA_DATA, *PDNS_SOA_DATA; | | typedef DNS_SOA_DATAW DNS_SOA_DATA, *PDNS_SOA_DATA; |
| typedef DNS_MINFO_DATAW DNS_MINFO_DATA, *PDNS_MINFO_DATA; | | typedef DNS_MINFO_DATAW DNS_MINFO_DATA, *PDNS_MINFO_DATA; |
| typedef DNS_MX_DATAW DNS_MX_DATA, *PDNS_MX_DATA; | | typedef DNS_MX_DATAW DNS_MX_DATA, *PDNS_MX_DATA; |
| typedef DNS_TXT_DATAW DNS_TXT_DATA, *PDNS_TXT_DATA; | | typedef DNS_TXT_DATAW DNS_TXT_DATA, *PDNS_TXT_DATA; |
| typedef DNS_SIG_DATAW DNS_SIG_DATA, *PDNS_SIG_DATA; | | typedef DNS_SIG_DATAW DNS_SIG_DATA, *PDNS_SIG_DATA; |
| typedef DNS_NXT_DATAW DNS_NXT_DATA, *PDNS_NXT_DATA; | | typedef DNS_NXT_DATAW DNS_NXT_DATA, *PDNS_NXT_DATA; |
| typedef DNS_SRV_DATAW DNS_SRV_DATA, *PDNS_SRV_DATA; | | typedef DNS_SRV_DATAW DNS_SRV_DATA, *PDNS_SRV_DATA; |
| typedef DNS_NAPTR_DATAW DNS_NAPTR_DATA, *PDNS_NAPTR_DATA; | | typedef DNS_NAPTR_DATAW DNS_NAPTR_DATA, *PDNS_NAPTR_DATA; |
|
| | typedef DNS_RRSIG_DATAW DNS_RRSIG_DATA, *PDNS_RRSIG_DATA; |
| | typedef DNS_NSEC_DATAW DNS_NSEC_DATA, *PDNS_NSEC_DATA; |
| typedef DNS_TKEY_DATAW DNS_TKEY_DATA, *PDNS_TKEY_DATA; | | typedef DNS_TKEY_DATAW DNS_TKEY_DATA, *PDNS_TKEY_DATA; |
| typedef DNS_TSIG_DATAW DNS_TSIG_DATA, *PDNS_TSIG_DATA; | | typedef DNS_TSIG_DATAW DNS_TSIG_DATA, *PDNS_TSIG_DATA; |
| typedef DNS_WINSR_DATAW DNS_WINSR_DATA, *PDNS_WINSR_DATA; | | typedef DNS_WINSR_DATAW DNS_WINSR_DATA, *PDNS_WINSR_DATA; |
| #else | | #else |
| typedef DNS_PTR_DATAA DNS_PTR_DATA, *PDNS_PTR_DATA; | | typedef DNS_PTR_DATAA DNS_PTR_DATA, *PDNS_PTR_DATA; |
| typedef DNS_SOA_DATAA DNS_SOA_DATA, *PDNS_SOA_DATA; | | typedef DNS_SOA_DATAA DNS_SOA_DATA, *PDNS_SOA_DATA; |
| typedef DNS_MINFO_DATAA DNS_MINFO_DATA, *PDNS_MINFO_DATA; | | typedef DNS_MINFO_DATAA DNS_MINFO_DATA, *PDNS_MINFO_DATA; |
| typedef DNS_MX_DATAA DNS_MX_DATA, *PDNS_MX_DATA; | | typedef DNS_MX_DATAA DNS_MX_DATA, *PDNS_MX_DATA; |
| typedef DNS_TXT_DATAA DNS_TXT_DATA, *PDNS_TXT_DATA; | | typedef DNS_TXT_DATAA DNS_TXT_DATA, *PDNS_TXT_DATA; |
| typedef DNS_SIG_DATAA DNS_SIG_DATA, *PDNS_SIG_DATA; | | typedef DNS_SIG_DATAA DNS_SIG_DATA, *PDNS_SIG_DATA; |
| typedef DNS_NXT_DATAA DNS_NXT_DATA, *PDNS_NXT_DATA; | | typedef DNS_NXT_DATAA DNS_NXT_DATA, *PDNS_NXT_DATA; |
| typedef DNS_SRV_DATAA DNS_SRV_DATA, *PDNS_SRV_DATA; | | typedef DNS_SRV_DATAA DNS_SRV_DATA, *PDNS_SRV_DATA; |
| typedef DNS_NAPTR_DATAA DNS_NAPTR_DATA, *PDNS_NAPTR_DATA; | | typedef DNS_NAPTR_DATAA DNS_NAPTR_DATA, *PDNS_NAPTR_DATA; |
|
| | typedef DNS_RRSIG_DATAA DNS_RRSIG_DATA, *PDNS_RRSIG_DATA; |
| | typedef DNS_NSEC_DATAA DNS_NSEC_DATA, *PDNS_NSEC_DATA; |
| typedef DNS_TKEY_DATAA DNS_TKEY_DATA, *PDNS_TKEY_DATA; | | typedef DNS_TKEY_DATAA DNS_TKEY_DATA, *PDNS_TKEY_DATA; |
| typedef DNS_TSIG_DATAA DNS_TSIG_DATA, *PDNS_TSIG_DATA; | | typedef DNS_TSIG_DATAA DNS_TSIG_DATA, *PDNS_TSIG_DATA; |
| typedef DNS_WINSR_DATAA DNS_WINSR_DATA, *PDNS_WINSR_DATA; | | typedef DNS_WINSR_DATAA DNS_WINSR_DATA, *PDNS_WINSR_DATA; |
| #endif | | #endif |
| | |
| // | | // |
| // Length of non-fixed-length data types | | // Length of non-fixed-length data types |
| // | | // |
| | |
| #define DNS_TEXT_RECORD_LENGTH(StringCount) \ | | #define DNS_TEXT_RECORD_LENGTH(StringCount) \ |
| | |
| skipping to change at line 1189 | | skipping to change at line 1276 |
| | |
| #define DNS_NULL_RECORD_LENGTH(ByteCount) \ | | #define DNS_NULL_RECORD_LENGTH(ByteCount) \ |
| (FIELD_OFFSET(DNS_NULL_DATA, Data) + (ByteCount)) | | (FIELD_OFFSET(DNS_NULL_DATA, Data) + (ByteCount)) |
| | |
| #define DNS_WKS_RECORD_LENGTH(ByteCount) \ | | #define DNS_WKS_RECORD_LENGTH(ByteCount) \ |
| (FIELD_OFFSET(DNS_WKS_DATA, BitMask) + (ByteCount)) | | (FIELD_OFFSET(DNS_WKS_DATA, BitMask) + (ByteCount)) |
| | |
| #define DNS_WINS_RECORD_LENGTH(IpCount) \ | | #define DNS_WINS_RECORD_LENGTH(IpCount) \ |
| (FIELD_OFFSET(DNS_WINS_DATA, WinsServers) + ((IpCount) * sizeof(IP4_
ADDRESS))) | | (FIELD_OFFSET(DNS_WINS_DATA, WinsServers) + ((IpCount) * sizeof(IP4_
ADDRESS))) |
| | |
|
| | #define DNS_KEY_RECORD_LENGTH(ByteCount) \ |
| | (FIELD_OFFSET(DNS_KEY_DATA, Key) + (ByteCount)) |
| | |
| | #define DNS_SIG_RECORD_LENGTH(ByteCount) \ |
| | (FIELD_OFFSET(DNS_SIG_DATA, Signature) + (ByteCount)) |
| | |
| | #define DNS_NSEC_RECORD_LENGTH(ByteCount) \ |
| | (FIELD_OFFSET(DNS_NSEC_DATA, TypeBitMaps) + (ByteCount)) |
| | |
| | #define DNS_DS_RECORD_LENGTH(ByteCount) \ |
| | (FIELD_OFFSET(DNS_DS_DATA, Digest) + (ByteCount)) |
| | |
| | #define DNS_OPT_RECORD_LENGTH(ByteCount) \ |
| | (FIELD_OFFSET(DNS_OPT_DATA, Data) + (ByteCount)) |
| | |
| | #define DNS_DHCID_RECORD_LENGTH(ByteCount) \ |
| | (FIELD_OFFSET(DNS_DHCID_DATA, DHCID) + (ByteCount)) |
| | |
| // | | // |
| // Record flags | | // Record flags |
| // | | // |
| | |
| typedef struct _DnsRecordFlags | | typedef struct _DnsRecordFlags |
| { | | { |
| DWORD Section : 2; | | DWORD Section : 2; |
| DWORD Delete : 1; | | DWORD Delete : 1; |
| DWORD CharSet : 2; | | DWORD CharSet : 2; |
| DWORD Unused : 3; | | DWORD Unused : 3; |
| | |
| skipping to change at line 1318 | | skipping to change at line 1423 |
| X25; | | X25; |
| DNS_NULL_DATA Null; | | DNS_NULL_DATA Null; |
| DNS_WKS_DATA WKS, Wks; | | DNS_WKS_DATA WKS, Wks; |
| DNS_AAAA_DATA AAAA; | | DNS_AAAA_DATA AAAA; |
| DNS_KEY_DATA KEY, Key; | | DNS_KEY_DATA KEY, Key; |
| DNS_SIG_DATAW SIG, Sig; | | DNS_SIG_DATAW SIG, Sig; |
| DNS_ATMA_DATA ATMA, Atma; | | DNS_ATMA_DATA ATMA, Atma; |
| DNS_NXT_DATAW NXT, Nxt; | | DNS_NXT_DATAW NXT, Nxt; |
| DNS_SRV_DATAW SRV, Srv; | | DNS_SRV_DATAW SRV, Srv; |
| DNS_NAPTR_DATAW NAPTR, Naptr; | | DNS_NAPTR_DATAW NAPTR, Naptr; |
|
| | DNS_OPT_DATA OPT, Opt; |
| | DNS_DS_DATA DS, Ds; |
| | DNS_RRSIG_DATAW RRSIG, Rrsig; |
| | DNS_NSEC_DATAW NSEC, Nsec; |
| | DNS_DNSKEY_DATA DNSKEY, Dnskey; |
| DNS_TKEY_DATAW TKEY, Tkey; | | DNS_TKEY_DATAW TKEY, Tkey; |
| DNS_TSIG_DATAW TSIG, Tsig; | | DNS_TSIG_DATAW TSIG, Tsig; |
| DNS_WINS_DATA WINS, Wins; | | DNS_WINS_DATA WINS, Wins; |
| DNS_WINSR_DATAW WINSR, WinsR, NBSTAT, Nbstat; | | DNS_WINSR_DATAW WINSR, WinsR, NBSTAT, Nbstat; |
|
| | DNS_DHCID_DATA DHCID; |
| | |
| } Data; | | } Data; |
| } | | } |
| DNS_RECORDW, *PDNS_RECORDW; | | DNS_RECORDW, *PDNS_RECORDW; |
| | |
|
| | typedef struct _DnsRecordOptW |
| | { |
| | struct _DnsRecordW * pNext; |
| | PWSTR pName; |
| | WORD wType; |
| | WORD wDataLength; // Not referenced for DNS record typ |
| | es |
| | // defined above. |
| | union |
| | { |
| | DWORD DW; // flags as DWORD |
| | DNS_RECORD_FLAGS S; // flags as structure |
| | |
| | } Flags; |
| | |
| | DNS_HEADER_EXT ExtHeader; // TTL |
| | WORD wPayloadSize; // dwReserved; |
| | WORD wReserved; |
| | |
| | // Record Data |
| | union |
| | { |
| | DNS_OPT_DATA OPT, Opt; |
| | |
| | } Data; |
| | } |
| | DNS_RECORD_OPTW, *PDNS_RECORD_OPTW; |
| | |
| typedef struct _DnsRecordA | | typedef struct _DnsRecordA |
| { | | { |
| struct _DnsRecordA * pNext; | | struct _DnsRecordA * pNext; |
| PSTR pName; | | PSTR pName; |
| WORD wType; | | WORD wType; |
| WORD wDataLength; // Not referenced for DNS record types | | WORD wDataLength; // Not referenced for DNS record types |
| // defined above. | | // defined above. |
| union | | union |
| { | | { |
| DWORD DW; // flags as DWORD | | DWORD DW; // flags as DWORD |
| DNS_RECORD_FLAGS S; // flags as structure | | DNS_RECORD_FLAGS S; // flags as structure |
| | |
| } Flags; | | } Flags; |
| | |
|
| DWORD dwTtl; | | DWORD dwTtl; |
| DWORD dwReserved; | | DWORD dwReserved; |
| | |
| // Record Data | | // Record Data |
| | |
| union | | union |
| { | | { |
| DNS_A_DATA A; | | DNS_A_DATA A; |
| DNS_SOA_DATAA SOA, Soa; | | DNS_SOA_DATAA SOA, Soa; |
| DNS_PTR_DATAA PTR, Ptr, | | DNS_PTR_DATAA PTR, Ptr, |
| NS, Ns, | | NS, Ns, |
| CNAME, Cname, | | CNAME, Cname, |
| | |
| skipping to change at line 1377 | | skipping to change at line 1515 |
| X25; | | X25; |
| DNS_NULL_DATA Null; | | DNS_NULL_DATA Null; |
| DNS_WKS_DATA WKS, Wks; | | DNS_WKS_DATA WKS, Wks; |
| DNS_AAAA_DATA AAAA; | | DNS_AAAA_DATA AAAA; |
| DNS_KEY_DATA KEY, Key; | | DNS_KEY_DATA KEY, Key; |
| DNS_SIG_DATAA SIG, Sig; | | DNS_SIG_DATAA SIG, Sig; |
| DNS_ATMA_DATA ATMA, Atma; | | DNS_ATMA_DATA ATMA, Atma; |
| DNS_NXT_DATAA NXT, Nxt; | | DNS_NXT_DATAA NXT, Nxt; |
| DNS_SRV_DATAA SRV, Srv; | | DNS_SRV_DATAA SRV, Srv; |
| DNS_NAPTR_DATAA NAPTR, Naptr; | | DNS_NAPTR_DATAA NAPTR, Naptr; |
|
| | DNS_OPT_DATA OPT, Opt; |
| | DNS_DS_DATA DS, Ds; |
| | DNS_RRSIG_DATAA RRSIG, Rrsig; |
| | DNS_NSEC_DATAA NSEC, Nsec; |
| | DNS_DNSKEY_DATA DNSKEY, Dnskey; |
| DNS_TKEY_DATAA TKEY, Tkey; | | DNS_TKEY_DATAA TKEY, Tkey; |
| DNS_TSIG_DATAA TSIG, Tsig; | | DNS_TSIG_DATAA TSIG, Tsig; |
| DNS_WINS_DATA WINS, Wins; | | DNS_WINS_DATA WINS, Wins; |
| DNS_WINSR_DATAA WINSR, WinsR, NBSTAT, Nbstat; | | DNS_WINSR_DATAA WINSR, WinsR, NBSTAT, Nbstat; |
|
| | DNS_DHCID_DATA DHCID; |
| | |
| } Data; | | } Data; |
| } | | } |
| DNS_RECORDA, *PDNS_RECORDA; | | DNS_RECORDA, *PDNS_RECORDA; |
| | |
|
| | typedef struct _DnsRecordOptA |
| | { |
| | struct _DnsRecordA * pNext; |
| | PSTR pName; |
| | WORD wType; |
| | WORD wDataLength; // Not referenced for DNS record types |
| | // defined above. |
| | union |
| | { |
| | DWORD DW; // flags as DWORD |
| | DNS_RECORD_FLAGS S; // flags as structure |
| | |
| | } Flags; |
| | |
| | DNS_HEADER_EXT ExtHeader; // TTL |
| | WORD wPayloadSize; // dwReserved; |
| | WORD wReserved; |
| | |
| | // Record Data |
| | |
| | union |
| | { |
| | DNS_OPT_DATA OPT, Opt; |
| | |
| | } Data; |
| | } |
| | DNS_RECORD_OPTA, *PDNS_RECORD_OPTA; |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
|
| typedef DNS_RECORDW DNS_RECORD, *PDNS_RECORD; | | typedef DNS_RECORDW DNS_RECORD, *PDNS_RECORD; |
| | typedef DNS_RECORD_OPTW DNS_RECORD_OPT, *PDNS_RECORD_OPT; |
| #else | | #else |
|
| typedef DNS_RECORDA DNS_RECORD, *PDNS_RECORD; | | typedef DNS_RECORDA DNS_RECORD, *PDNS_RECORD; |
| | typedef DNS_RECORD_OPTA DNS_RECORD_OPT, *PDNS_RECORD_OPT; |
| #endif | | #endif |
| | |
| // | | // |
| // Header or fixed size of DNS_RECORD | | // Header or fixed size of DNS_RECORD |
| // | | // |
| | |
| #define DNS_RECORD_FIXED_SIZE FIELD_OFFSET( DNS_RECORD, Data ) | | #define DNS_RECORD_FIXED_SIZE FIELD_OFFSET( DNS_RECORD, Data ) |
| #define SIZEOF_DNS_RECORD_HEADER DNS_RECORD_FIXED_SIZE | | #define SIZEOF_DNS_RECORD_HEADER DNS_RECORD_FIXED_SIZE |
| | |
| #endif // PRIVATE_DNS_RECORD | | #endif // PRIVATE_DNS_RECORD |
| | |
| skipping to change at line 1455 | | skipping to change at line 1629 |
| _prrset->pLastRR->pNext = _prrnew; \ | | _prrset->pLastRR->pNext = _prrnew; \ |
| _prrset->pLastRR = _prrnew; \ | | _prrset->pLastRR = _prrnew; \ |
| } | | } |
| | |
| #define DNS_RRSET_TERMINATE( rrset ) \ | | #define DNS_RRSET_TERMINATE( rrset ) \ |
| { \ | | { \ |
| PDNS_RRSET _prrset = &(rrset); \ | | PDNS_RRSET _prrset = &(rrset); \ |
| _prrset->pLastRR->pNext = NULL; \ | | _prrset->pLastRR->pNext = NULL; \ |
| } | | } |
| | |
|
| | typedef |
| | VOID |
| | (WINAPI *DNS_PROXY_COMPLETION_ROUTINE) ( |
| | __in_opt void *completionContext, |
| | __in DNS_STATUS status); |
| | |
| | typedef enum DNS_PROXY_INFORMATION_TYPE { |
| | DNS_PROXY_INFORMATION_DIRECT, |
| | DNS_PROXY_INFORMATION_DEFAULT_SETTINGS, |
| | DNS_PROXY_INFORMATION_PROXY_NAME, |
| | DNS_PROXY_INFORMATION_DOES_NOT_EXIST |
| | } DNS_PROXY_INFORMATION_TYPE; |
| | |
| | typedef struct DNS_PROXY_INFORMATION { |
| | __in ULONG version; // Current version is 1 |
| | __out DNS_PROXY_INFORMATION_TYPE proxyInformationType; |
| | __out_opt PWSTR proxyName; |
| | } DNS_PROXY_INFORMATION; |
| | |
| // | | // |
| // Record set manipulation | | // Record set manipulation |
| // | | // |
| | |
| // | | // |
| // Record Copy | | // Record Copy |
| // Record copy functions also do conversion between character sets. | | // Record copy functions also do conversion between character sets. |
| // | | // |
| // Note, it might be advisable to directly expose non-Ex copy | | // Note, it might be advisable to directly expose non-Ex copy |
| // functions _W, _A for record and set, to avoid exposing the | | // functions _W, _A for record and set, to avoid exposing the |
| | |
| skipping to change at line 1609 | | skipping to change at line 1802 |
| #define DNS_QUERY_NO_HOSTS_FILE 0x00000040 | | #define DNS_QUERY_NO_HOSTS_FILE 0x00000040 |
| #define DNS_QUERY_NO_NETBT 0x00000080 | | #define DNS_QUERY_NO_NETBT 0x00000080 |
| | |
| #define DNS_QUERY_WIRE_ONLY 0x00000100 | | #define DNS_QUERY_WIRE_ONLY 0x00000100 |
| #define DNS_QUERY_RETURN_MESSAGE 0x00000200 | | #define DNS_QUERY_RETURN_MESSAGE 0x00000200 |
| | |
| #define DNS_QUERY_MULTICAST_ONLY 0x00000400 | | #define DNS_QUERY_MULTICAST_ONLY 0x00000400 |
| #define DNS_QUERY_NO_MULTICAST 0x00000800 | | #define DNS_QUERY_NO_MULTICAST 0x00000800 |
| | |
| #define DNS_QUERY_TREAT_AS_FQDN 0x00001000 | | #define DNS_QUERY_TREAT_AS_FQDN 0x00001000 |
|
| | #define DNS_QUERY_APPEND_MULTILABEL 0x00800000 |
| | |
| #define DNS_QUERY_DONT_RESET_TTL_VALUES 0x00100000 | | #define DNS_QUERY_DONT_RESET_TTL_VALUES 0x00100000 |
|
| #define DNS_QUERY_RESERVED 0xff000000 | | #define DNS_QUERY_RESERVED 0xf0000000 |
| | |
| // Backward compatibility with Win2K | | // Backward compatibility with Win2K |
| // Do not use | | // Do not use |
| | |
| #define DNS_QUERY_CACHE_ONLY DNS_QUERY_NO_WIRE_QUERY | | #define DNS_QUERY_CACHE_ONLY DNS_QUERY_NO_WIRE_QUERY |
| | |
| DNS_STATUS | | DNS_STATUS |
| WINAPI | | WINAPI |
| DnsQuery_A( | | DnsQuery_A( |
| __in PCSTR pszName, | | __in PCSTR pszName, |
| | |
| skipping to change at line 1806 | | skipping to change at line 2001 |
| // DNS name validation | | // DNS name validation |
| // | | // |
| | |
| typedef enum _DNS_NAME_FORMAT | | typedef enum _DNS_NAME_FORMAT |
| { | | { |
| DnsNameDomain, | | DnsNameDomain, |
| DnsNameDomainLabel, | | DnsNameDomainLabel, |
| DnsNameHostnameFull, | | DnsNameHostnameFull, |
| DnsNameHostnameLabel, | | DnsNameHostnameLabel, |
| DnsNameWildcard, | | DnsNameWildcard, |
|
| DnsNameSrvRecord | | DnsNameSrvRecord, |
| | DnsNameValidateTld |
| } | | } |
| DNS_NAME_FORMAT; | | DNS_NAME_FORMAT; |
| | |
| DNS_STATUS | | DNS_STATUS |
| DnsValidateName_W( | | DnsValidateName_W( |
| __in PCWSTR pszName, | | __in PCWSTR pszName, |
| __in DNS_NAME_FORMAT Format | | __in DNS_NAME_FORMAT Format |
| ); | | ); |
| | |
| DNS_STATUS | | DNS_STATUS |
| | |
| skipping to change at line 1835 | | skipping to change at line 2031 |
| __in DNS_NAME_FORMAT Format | | __in DNS_NAME_FORMAT Format |
| ); | | ); |
| | |
| #ifdef UNICODE | | #ifdef UNICODE |
| #define DnsValidateName(p,f) DnsValidateName_W( (p), (f) ) | | #define DnsValidateName(p,f) DnsValidateName_W( (p), (f) ) |
| #else | | #else |
| #define DnsValidateName(p,f) DnsValidateName_A( (p), (f) ) | | #define DnsValidateName(p,f) DnsValidateName_A( (p), (f) ) |
| #endif | | #endif |
| | |
| // | | // |
|
| | // DNS server validation |
| | // |
| | |
| | // DNS server validation error codes |
| | #define DNS_VALSVR_ERROR_INVALID_ADDR 0x01 |
| | #define DNS_VALSVR_ERROR_INVALID_NAME 0x02 |
| | #define DNS_VALSVR_ERROR_UNREACHABLE 0x03 |
| | #define DNS_VALSVR_ERROR_NO_RESPONSE 0x04 |
| | #define DNS_VALSVR_ERROR_NO_AUTH 0x05 |
| | #define DNS_VALSVR_ERROR_REFUSED 0x06 |
| | |
| | #define DNS_VALSVR_ERROR_NO_TCP 0x10 |
| | #define DNS_VALSVR_ERROR_UNKNOWN 0xFF |
| | |
| | // Winsock2.h must be included before windns.h to use the validate server functi |
| | on |
| | #ifdef _WS2DEF_ |
| | |
| | DNS_STATUS |
| | DnsValidateServerStatus( |
| | __in PSOCKADDR server, |
| | __in PCWSTR queryName, |
| | __out PDWORD serverStatus |
| | ); |
| | |
| | #endif |
| | |
| | // |
| // DNS name comparison | | // DNS name comparison |
| // | | // |
| | |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| DnsNameCompare_A( | | DnsNameCompare_A( |
| __in PCSTR pName1, | | __in PCSTR pName1, |
| __in PCSTR pName2 | | __in PCSTR pName2 |
| ); | | ); |
| | |
| | |
| skipping to change at line 1907 | | skipping to change at line 2130 |
| ); | | ); |
| | |
| DNS_STATUS | | DNS_STATUS |
| WINAPI | | WINAPI |
| DnsExtractRecordsFromMessage_UTF8( | | DnsExtractRecordsFromMessage_UTF8( |
| __in PDNS_MESSAGE_BUFFER pDnsBuffer, | | __in PDNS_MESSAGE_BUFFER pDnsBuffer, |
| __in WORD wMessageLength, | | __in WORD wMessageLength, |
| __deref_out PDNS_RECORD * ppRecord | | __deref_out PDNS_RECORD * ppRecord |
| ); | | ); |
| | |
|
| | DWORD |
| | WINAPI |
| | DnsGetProxyInformation( |
| | __in PCWSTR hostName, |
| | __inout DNS_PROXY_INFORMATION *proxyInform |
| | ation, |
| | __inout_opt DNS_PROXY_INFORMATION *defaultProx |
| | yInformation, |
| | __in_opt DNS_PROXY_COMPLETION_ROUTINE completionRo |
| | utine, |
| | __in_opt void *completionC |
| | ontext); |
| | |
| | VOID DnsFreeProxyName(__inout PWSTR proxyName); |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| } | | } |
| #endif // __cplusplus | | #endif // __cplusplus |
| | |
| #endif // _WINDNS_INCLUDED_ | | #endif // _WINDNS_INCLUDED_ |
| | |
| End of changes. 36 change blocks. |
| 20 lines changed or deleted | | 260 lines changed or added |
|