Headers diff for dnsapi.dll between 6.0.6002.18005-Windows 6.0 and 6.1.7601.17570-Windows 7.0 versions



 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

This html diff was produced by rfcdiff 1.41.