Headers diff for dnsapi.dll between 5.2.3790.3959-Windows 5.0 and 6.0.6002.18005-Windows 6.0 versions



 windns.h (5.2.3790.3959-Windows 5.0)   windns.h (6.0.6002.18005-Windows 6.0) 
/*++ /*++
Copyright (c) 1996-2002 Microsoft Corporation Copyright (c) 1996-2005 Microsoft Corporation
Module Name: Module Name:
windns.h windns.h
Abstract: Abstract:
Domain Name System (DNS) Domain Name System (DNS)
DNS definitions and DNS API. DNS definitions and DNS API.
skipping to change at line 50 skipping to change at line 50
typedef LONG DNS_STATUS, *PDNS_STATUS; typedef LONG 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 (15) #define IP4_ADDRESS_STRING_LENGTH (16)
// Backcompat only -- length def contains terminating NULL
#define IP4_ADDRESS_STRING_BUFFER_LENGTH (16) #define IP4_ADDRESS_STRING_BUFFER_LENGTH (16)
// //
// IP Address Array type // IP Address Array type
// //
typedef struct _IP4_ARRAY typedef struct _IP4_ARRAY
{ {
DWORD AddrCount; DWORD AddrCount;
#ifdef MIDL_PASS #ifdef MIDL_PASS
skipping to change at line 73 skipping to change at line 76
IP4_ADDRESS AddrArray[1]; IP4_ADDRESS AddrArray[1];
#endif #endif
} }
IP4_ARRAY, *PIP4_ARRAY; IP4_ARRAY, *PIP4_ARRAY;
// //
// IPv6 Address // IPv6 Address
// //
#ifdef MIDL_PASS #ifdef MIDL_PASS
typedef struct
{
#ifdef _WIN64 #ifdef _WIN64
QWORD IP6Qword[2]; #pragma pack(push, 8)
#else #else
DWORD IP6Dword[4]; #pragma pack(push, 4)
#endif #endif
typedef struct
{
QWORD IP6Qword[2];
} }
IP6_ADDRESS, *PIP6_ADDRESS; IP6_ADDRESS, *PIP6_ADDRESS;
#else
#pragma pack(pop)
#else // MIDL_PASS
typedef union typedef union
{ {
#ifdef _WIN64 #ifdef _WIN64
QWORD IP6Qword[2]; QWORD IP6Qword[2];
#endif #endif
DWORD IP6Dword[4]; DWORD IP6Dword[4];
WORD IP6Word[8]; WORD IP6Word[8];
BYTE IP6Byte[16]; BYTE IP6Byte[16];
#ifdef IN6_ADDR #ifdef IN6_ADDR
IN6_ADDR In6; IN6_ADDR In6;
#endif #endif
} }
IP6_ADDRESS, *PIP6_ADDRESS; IP6_ADDRESS, *PIP6_ADDRESS;
#endif
// Backward compatibility #endif // MIDL_PASS
//typedef IP6_ADDRESS DNS_IP6_ADDRESS, *PDNS_IP6_ADDRESS;
// //
// IP6 string max is 45 bytes // IP6 string max is 45 bytes
// - 6 WORDs in colon+hex (5 chars) // - 6 WORDs in colon+hex (5 chars)
// - last DWORD as IP4 (15 chars) // - last DWORD as IP4 (15 chars)
// but include
// - 11 bytes for scope ID
// - 6 bytes for port (inc. colon)
// - two bytes to bracket address with port
// - terminating NULL
// //
// Note: this is a change to previous def, but a single
// definition continaing space for ALL possible IPv6
// address strings, we elminate many possible errors
#undef IP6_ADDRESS_STRING_LENGTH #undef IP6_ADDRESS_STRING_LENGTH
#define IP6_ADDRESS_STRING_LENGTH (47) #define IP6_ADDRESS_STRING_LENGTH (65)
#define IP6_ADDRESS_STRING_BUFFER_LENGTH (48) #define IP6_ADDRESS_STRING_BUFFER_LENGTH (65)
// backcompat //
//#define IPV6_ADDRESS_STRING_LENGTH IP6_ADDRESS_STRING_LENGTH // IP4/IP6 combined maximum
//
#define DNS_ADDRESS_STRING_LENGTH (IP6_ADDRESS_STRING_LENGTH)
// //
// Inline byte flipping -- can be done in registers // Inline byte flipping -- can be done in registers
// //
#define INLINE_WORD_FLIP(out, in) \ #define INLINE_WORD_FLIP(out, in) \
{ \ { \
WORD _in = (in); \ WORD _in = (in); \
(out) = (_in << 8) | (_in >> 8); \ (out) = (_in << 8) | (_in >> 8); \
} }
skipping to change at line 178 skipping to change at line 196
#define DNS_MAX_NAME_LENGTH (255) #define DNS_MAX_NAME_LENGTH (255)
#define DNS_MAX_LABEL_LENGTH (63) #define DNS_MAX_LABEL_LENGTH (63)
#define DNS_MAX_NAME_BUFFER_LENGTH (256) #define DNS_MAX_NAME_BUFFER_LENGTH (256)
#define DNS_MAX_LABEL_BUFFER_LENGTH (64) #define DNS_MAX_LABEL_BUFFER_LENGTH (64)
// //
// Reverse lookup domain names // Reverse lookup domain names
// //
#define DNS_IP4_REVERSE_DOMAIN_STRING_A ("in-addr.arpa.") #define DNS_IP4_REVERSE_DOMAIN_STRING_A ("in-addr.arpa.")
#define DNS_IP4_REVERSE_DOMAIN_STRING_W (L"in-addr.arpa.") #define DNS_IP4_REVERSE_DOMAIN_STRING_W (L"in-addr.arpa.")
#define DNS_MAX_IP4_REVERSE_NAME_LENGTH \
(IP4_ADDRESS_STRING_LENGTH+1+sizeof(DNS_IP4_REVERSE_DOMAIN_STRING_A)
)
#define DNS_MAX_IP4_REVERSE_NAME_BUFFER_LENGTH \
(DNS_MAX_IP4_REVERSE_NAME_LENGTH + 1)
#define DNS_IP6_REVERSE_DOMAIN_STRING_A ("ip6.arpa.") #define DNS_MAX_IP4_REVERSE_NAME_LENGTH (IP4_ADDRESS_STRING_LENGTH+15)
#define DNS_IP6_REVERSE_DOMAIN_STRING_W (L"ip6.arpa.") //(IP4_ADDRESS_STRING_LENGTH+1+sizeof(DNS_IP4_REVERSE_DOMAIN_STRING_
A))
#define DNS_MAX_IP6_REVERSE_NAME_LENGTH \ #define DNS_IP6_REVERSE_DOMAIN_STRING_A ("ip6.arpa.")
(64+sizeof(DNS_IP6_REVERSE_DOMAIN_STRING_A)) #define DNS_IP6_REVERSE_DOMAIN_STRING_W (L"ip6.arpa.")
#define DNS_MAX_IP6_REVERSE_NAME_BUFFER_LENGTH \ #define DNS_MAX_IP6_REVERSE_NAME_LENGTH (75)
(DNS_MAX_IP6_REVERSE_NAME_LENGTH + 1) //(64+sizeof(DNS_IP6_REVERSE_DOMAIN_STRING_A))
// Combined // Combined
#define DNS_MAX_REVERSE_NAME_LENGTH DNS_MAX_IP6_REVERSE_NAME_LENGTH #define DNS_MAX_REVERSE_NAME_LENGTH DNS_MAX_IP6_REVERSE_NAME_LENGTH
#define DNS_MAX_REVERSE_NAME_BUFFER_LENGTH DNS_MAX_IP6_REVERSE_NAME_BUFFER_LENG
TH
#ifdef UNICODE #ifdef UNICODE
#define DNS_IP4_REVERSE_DOMAIN_STRING DNS_IP4_REVERSE_DOMAIN_STRING_W #define DNS_IP4_REVERSE_DOMAIN_STRING DNS_IP4_REVERSE_DOMAIN_STRING_W
#define DNS_IP6_REVERSE_DOMAIN_STRING DNS_IP6_REVERSE_DOMAIN_STRING_W #define DNS_IP6_REVERSE_DOMAIN_STRING DNS_IP6_REVERSE_DOMAIN_STRING_W
#else #else
#define DNS_IP4_REVERSE_DOMAIN_STRING DNS_IP4_REVERSE_DOMAIN_STRING_A #define DNS_IP4_REVERSE_DOMAIN_STRING DNS_IP4_REVERSE_DOMAIN_STRING_A
#define DNS_IP6_REVERSE_DOMAIN_STRING DNS_IP6_REVERSE_DOMAIN_STRING_A #define DNS_IP6_REVERSE_DOMAIN_STRING DNS_IP6_REVERSE_DOMAIN_STRING_A
#endif #endif
// //
// Backcompat only -- name def contains terminating NULL
//
#define DNS_MAX_IP4_REVERSE_NAME_BUFFER_LENGTH DNS_MAX_IP4_REVERSE_NAME_LENGTH
#define DNS_MAX_IP6_REVERSE_NAME_BUFFER_LENGTH DNS_MAX_IP6_REVERSE_NAME_LENGTH
#define DNS_MAX_REVERSE_NAME_BUFFER_LENGTH DNS_MAX_REVERSE_NAME_LENGTH
//
// 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(1)
skipping to change at line 766 skipping to change at line 785
// //
// Causes config info to be allocated. // Causes config info to be allocated.
// Free with DnsFree(). // Free with DnsFree().
// //
#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 PWSTR pwsAdapterName, __in_opt PCWSTR pwsAdapterName,
IN PVOID pReserved, __in_opt PVOID pReserved,
OUT PVOID pBuffer, __out_bcount_part(*pBufLen, *pBufLen) PVOID pBuffer,
IN OUT PDWORD pBufferLength __inout PDWORD pBufLen
); );
// //
// DNS resource record structure // DNS resource record structure
// //
// //
// Record data for specific types // Record data for specific types
// //
typedef struct typedef struct
skipping to change at line 989 skipping to change at line 1008
PSTR pNameTarget; PSTR pNameTarget;
WORD wPriority; WORD wPriority;
WORD wWeight; WORD wWeight;
WORD wPort; WORD wPort;
WORD Pad; // keep ptrs DWORD aligned WORD Pad; // keep ptrs DWORD aligned
} }
DNS_SRV_DATAA, *PDNS_SRV_DATAA; DNS_SRV_DATAA, *PDNS_SRV_DATAA;
typedef struct typedef struct
{ {
WORD wOrder;
WORD wPreference;
PWSTR pFlags;
PWSTR pService;
PWSTR pRegularExpression;
PWSTR pReplacement;
}
DNS_NAPTR_DATAW, *PDNS_NAPTR_DATAW;
typedef struct
{
WORD wOrder;
WORD wPreference;
PSTR pFlags;
PSTR pService;
PSTR pRegularExpression;
PSTR pReplacement;
}
DNS_NAPTR_DATAA, *PDNS_NAPTR_DATAA;
typedef struct
{
BYTE AddressType; BYTE AddressType;
BYTE Address[ DNS_ATMA_MAX_ADDR_LENGTH ]; BYTE Address[ DNS_ATMA_MAX_ADDR_LENGTH ];
// E164 -- Null terminated string of less than // E164 -- Null terminated string of less than
// DNS_ATMA_MAX_ADDR_LENGTH // DNS_ATMA_MAX_ADDR_LENGTH
// //
// For NSAP (AESA) BCD encoding of exactly // For NSAP (AESA) BCD encoding of exactly
// DNS_ATMA_AESA_ADDR_LENGTH // DNS_ATMA_AESA_ADDR_LENGTH
} }
DNS_ATMA_DATA, *PDNS_ATMA_DATA; DNS_ATMA_DATA, *PDNS_ATMA_DATA;
skipping to change at line 1113 skipping to change at line 1154
#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_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_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 1220 skipping to change at line 1263
// //
// Note: The dwReserved flag serves to insure that the substructures // Note: The dwReserved flag serves to insure that the substructures
// start on 64-bit boundaries. Do NOT pack this structure, as the // start on 64-bit boundaries. Do NOT pack this structure, as the
// substructures may contain pointers or int64 values which are // substructures may contain pointers or int64 values which are
// properly aligned unpacked. // properly aligned unpacked.
// //
#ifdef MIDL_PASS #ifdef MIDL_PASS
#define PDNS_RECORD PVOID #define PDNS_RECORD PVOID
#define PDNS_RECORDA PVOID
#define PDNS_RECORDW PVOID
#else #else
typedef struct _DnsRecordW typedef struct _DnsRecordW
{ {
struct _DnsRecordW * pNext; struct _DnsRecordW * pNext;
PWSTR pName; PWSTR pName;
WORD wType; WORD wType;
WORD wDataLength; // Not referenced for DNS record typ es WORD wDataLength; // Not referenced for DNS record typ es
// defined above. // defined above.
skipping to change at line 1249 skipping to change at line 1294
// Record Data // Record Data
union union
{ {
DNS_A_DATA A; DNS_A_DATA A;
DNS_SOA_DATAW SOA, Soa; DNS_SOA_DATAW SOA, Soa;
DNS_PTR_DATAW PTR, Ptr, DNS_PTR_DATAW PTR, Ptr,
NS, Ns, NS, Ns,
CNAME, Cname, CNAME, Cname,
DNAME, Dname,
MB, Mb, MB, Mb,
MD, Md, MD, Md,
MF, Mf, MF, Mf,
MG, Mg, MG, Mg,
MR, Mr; MR, Mr;
DNS_MINFO_DATAW MINFO, Minfo, DNS_MINFO_DATAW MINFO, Minfo,
RP, Rp; RP, Rp;
DNS_MX_DATAW MX, Mx, DNS_MX_DATAW MX, Mx,
AFSDB, Afsdb, AFSDB, Afsdb,
RT, Rt; RT, Rt;
skipping to change at line 1271 skipping to change at line 1317
TXT, Txt, TXT, Txt,
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_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;
} Data; } Data;
} }
DNS_RECORDW, *PDNS_RECORDW; DNS_RECORDW, *PDNS_RECORDW;
typedef struct _DnsRecordA typedef struct _DnsRecordA
skipping to change at line 1306 skipping to change at line 1353
// 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,
DNAME, Dname,
MB, Mb, MB, Mb,
MD, Md, MD, Md,
MF, Mf, MF, Mf,
MG, Mg, MG, Mg,
MR, Mr; MR, Mr;
DNS_MINFO_DATAA MINFO, Minfo, DNS_MINFO_DATAA MINFO, Minfo,
RP, Rp; RP, Rp;
DNS_MX_DATAA MX, Mx, DNS_MX_DATAA MX, Mx,
AFSDB, Afsdb, AFSDB, Afsdb,
RT, Rt; RT, Rt;
skipping to change at line 1328 skipping to change at line 1376
TXT, Txt, TXT, Txt,
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_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;
} Data; } Data;
} }
DNS_RECORDA, *PDNS_RECORDA; DNS_RECORDA, *PDNS_RECORDA;
#ifdef UNICODE #ifdef UNICODE
skipping to change at line 1431 skipping to change at line 1480
DnsCharSetUnknown, DnsCharSetUnknown,
DnsCharSetUnicode, DnsCharSetUnicode,
DnsCharSetUtf8, DnsCharSetUtf8,
DnsCharSetAnsi, DnsCharSetAnsi,
} }
DNS_CHARSET; DNS_CHARSET;
PDNS_RECORD PDNS_RECORD
WINAPI WINAPI
DnsRecordCopyEx( DnsRecordCopyEx(
IN PDNS_RECORD pRecord, __in PDNS_RECORD pRecord,
IN DNS_CHARSET CharSetIn, __in DNS_CHARSET CharSetIn,
IN DNS_CHARSET CharSetOut __in DNS_CHARSET CharSetOut
); );
PDNS_RECORD PDNS_RECORD
WINAPI WINAPI
DnsRecordSetCopyEx( DnsRecordSetCopyEx(
IN PDNS_RECORD pRecordSet, __in PDNS_RECORD pRecordSet,
IN DNS_CHARSET CharSetIn, __in DNS_CHARSET CharSetIn,
IN DNS_CHARSET CharSetOut __in DNS_CHARSET CharSetOut
); );
#ifdef UNICODE #ifdef UNICODE
#define DnsRecordCopy(pRR) \ #define DnsRecordCopy(pRR) \
DnsRecordCopyEx( (pRR), DnsCharSetUnicode, DnsCharSetUnicode ) DnsRecordCopyEx( (pRR), DnsCharSetUnicode, DnsCharSetUnicode )
#define DnsRecordSetCopy(pRR) \ #define DnsRecordSetCopy(pRR) \
DnsRecordSetCopyEx( (pRR), DnsCharSetUnicode, DnsCharSetUnicode ) DnsRecordSetCopyEx( (pRR), DnsCharSetUnicode, DnsCharSetUnicode )
#else #else
#define DnsRecordCopy(pRR) \ #define DnsRecordCopy(pRR) \
DnsRecordCopyEx( (pRR), DnsCharSetAnsi, DnsCharSetAnsi ) DnsRecordCopyEx( (pRR), DnsCharSetAnsi, DnsCharSetAnsi )
skipping to change at line 1469 skipping to change at line 1518
// Note: these routines only compare records of the SAME character set. // Note: these routines only compare records of the SAME character set.
// (ANSI, unicode or UTF8). Furthermore the routines assume the character // (ANSI, unicode or UTF8). Furthermore the routines assume the character
// set is indicated within the record. If compare of user created, rather // set is indicated within the record. If compare of user created, rather
// than DNS API created record lists is desired, then caller should use // than DNS API created record lists is desired, then caller should use
// DnsRecordCopy API and compare copies. // DnsRecordCopy API and compare copies.
// //
BOOL BOOL
WINAPI WINAPI
DnsRecordCompare( DnsRecordCompare(
IN PDNS_RECORD pRecord1, __in PDNS_RECORD pRecord1,
IN PDNS_RECORD pRecord2 __in PDNS_RECORD pRecord2
); );
BOOL BOOL
WINAPI WINAPI
DnsRecordSetCompare( DnsRecordSetCompare(
IN OUT PDNS_RECORD pRR1, __inout PDNS_RECORD pRR1,
IN OUT PDNS_RECORD pRR2, __inout PDNS_RECORD pRR2,
OUT PDNS_RECORD * ppDiff1, __deref_opt_out_opt PDNS_RECORD * ppDiff1,
OUT PDNS_RECORD * ppDiff2 __deref_opt_out_opt PDNS_RECORD * ppDiff2
); );
// //
// Detach next record set from record list // Detach next record set from record list
// //
PDNS_RECORD PDNS_RECORD
DnsRecordSetDetach( DnsRecordSetDetach(
IN OUT PDNS_RECORD pRecordList __inout PDNS_RECORD pRecordList
); );
// //
// Free structures returned from dnsapi.dll // Free structures returned from dnsapi.dll
// //
// Currently supported free structures: // Currently supported free structures:
// Flat -- flat structure, including those allocated by DnsQueryConfig() // Flat -- flat structure, including those allocated by DnsQueryConfig()
// RecordList -- deep record list free, including sub-fields of DNS_RECORD; // RecordList -- deep record list free, including sub-fields of DNS_RECORD;
// includes those returned by DnsQuery() or DnsRecordSetCopy() // includes those returned by DnsQuery() or DnsRecordSetCopy()
// //
skipping to change at line 1511 skipping to change at line 1560
{ {
DnsFreeFlat = 0, DnsFreeFlat = 0,
DnsFreeRecordList, DnsFreeRecordList,
DnsFreeParsedMessageFields DnsFreeParsedMessageFields
} }
DNS_FREE_TYPE; DNS_FREE_TYPE;
VOID VOID
WINAPI WINAPI
DnsFree( DnsFree(
IN OUT PVOID pData, __inout PVOID pData,
IN DNS_FREE_TYPE FreeType __in DNS_FREE_TYPE FreeType
); );
// //
// Backward compatibility with Win2K, do not use for XP+ applications // Backward compatibility with Win2K, do not use for XP+ applications
// //
// To free record lists, code // To free record lists, code
// DnsFree( pRecordList, DnsFreeRecordList ); // DnsFree( pRecordList, DnsFreeRecordList );
// //
#define DnsFreeRecordListDeep DnsFreeRecordList #define DnsFreeRecordListDeep DnsFreeRecordList
#if(_WIN32_WINNT >= 0x0501)
#define DnsRecordListFree(p,t) DnsFree(p,DnsFreeRecordList)
#else
VOID VOID
WINAPI WINAPI
DnsRecordListFree( DnsRecordListFree(
IN OUT PDNS_RECORD pRecordList, __inout_opt PDNS_RECORD pRecordList,
IN DNS_FREE_TYPE FreeType __in DNS_FREE_TYPE FreeType
); );
#endif /* _WIN32_WINNT >= 0x0501 */
// //
// DNS Query API // DNS Query API
// //
// //
// Options for DnsQuery // Options for DnsQuery
// //
#define DNS_QUERY_STANDARD 0x00000000 #define DNS_QUERY_STANDARD 0x00000000
#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x00000001 #define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x00000001
skipping to change at line 1552 skipping to change at line 1605
#define DNS_QUERY_BYPASS_CACHE 0x00000008 #define DNS_QUERY_BYPASS_CACHE 0x00000008
#define DNS_QUERY_NO_WIRE_QUERY 0x00000010 #define DNS_QUERY_NO_WIRE_QUERY 0x00000010
#define DNS_QUERY_NO_LOCAL_NAME 0x00000020 #define DNS_QUERY_NO_LOCAL_NAME 0x00000020
#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_NO_MULTICAST 0x00000800
#define DNS_QUERY_TREAT_AS_FQDN 0x00001000 #define DNS_QUERY_TREAT_AS_FQDN 0x00001000
#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 0xff000000
// 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,
IN WORD wType, __in WORD wType,
IN DWORD Options, __in DWORD Options,
IN PIP4_ARRAY aipServers OPTIONAL, __inout_opt PVOID pExtra,
IN OUT PDNS_RECORD * ppQueryResults OPTIONAL, __deref_out_opt PDNS_RECORD * ppQueryResults,
IN OUT PVOID * pReserved OPTIONAL __deref_opt_out_opt PVOID * pReserved
); );
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsQuery_UTF8( DnsQuery_UTF8(
IN PCSTR pszName, __in PCSTR pszName,
IN WORD wType, __in WORD wType,
IN DWORD Options, __in DWORD Options,
IN PIP4_ARRAY aipServers OPTIONAL, __inout_opt PVOID pExtra,
IN OUT PDNS_RECORD * ppQueryResults OPTIONAL, __deref_out_opt PDNS_RECORD * ppQueryResults,
IN OUT PVOID * pReserved OPTIONAL __deref_opt_out_opt PVOID * pReserved
); );
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsQuery_W( DnsQuery_W(
IN PCWSTR pszName, __in PCWSTR pszName,
IN WORD wType, __in WORD wType,
IN DWORD Options, __in DWORD Options,
IN PIP4_ARRAY aipServers OPTIONAL, __inout_opt PVOID pExtra,
IN OUT PDNS_RECORD * ppQueryResults OPTIONAL, __deref_out_opt PDNS_RECORD * ppQueryResults,
IN OUT PVOID * pReserved OPTIONAL __deref_opt_out_opt PVOID * pReserved
); );
#ifdef UNICODE #ifdef UNICODE
#define DnsQuery DnsQuery_W #define DnsQuery DnsQuery_W
#else #else
#define DnsQuery DnsQuery_A #define DnsQuery DnsQuery_A
#endif #endif
// //
// DNS Update API // DNS Update API
// //
skipping to change at line 1636 skipping to change at line 1692
// PSEC_WINNT_AUTH_IDENTITY_W or PSEC_WINNT_AUTH_IDENTITY_A. // PSEC_WINNT_AUTH_IDENTITY_W or PSEC_WINNT_AUTH_IDENTITY_A.
// Using PVOID to obviate the need for including rpcdce.h // Using PVOID to obviate the need for including rpcdce.h
// in order to include this file and to leave open the // in order to include this file and to leave open the
// possibility of alternative credential specifications in // possibility of alternative credential specifications in
// the future. // the future.
// //
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsAcquireContextHandle_W( DnsAcquireContextHandle_W(
IN DWORD CredentialFlags, __in DWORD CredentialFlags,
IN PVOID pCredentials, OPTIONAL __in_opt PVOID Credentials,
//IN PSEC_WINNT_AUTH_IDENTITY_W pCredentials, __deref_out PHANDLE pContext
OUT PHANDLE pContextHandle
); );
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsAcquireContextHandle_A( DnsAcquireContextHandle_A(
IN DWORD CredentialFlags, __in DWORD CredentialFlags,
IN PVOID pCredentials, OPTIONAL __in_opt PVOID Credentials,
//IN PSEC_WINNT_AUTH_IDENTITY_A pCredentials, __deref_out PHANDLE pContext
OUT PHANDLE pContextHandle
); );
#ifdef UNICODE #ifdef UNICODE
#define DnsAcquireContextHandle DnsAcquireContextHandle_W #define DnsAcquireContextHandle DnsAcquireContextHandle_W
#else #else
#define DnsAcquireContextHandle DnsAcquireContextHandle_A #define DnsAcquireContextHandle DnsAcquireContextHandle_A
#endif #endif
VOID VOID
WINAPI WINAPI
DnsReleaseContextHandle( DnsReleaseContextHandle(
IN HANDLE hContext __in HANDLE hContext
); );
// //
// Dynamic Update API // Dynamic Update API
// //
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsModifyRecordsInSet_W( DnsModifyRecordsInSet_W(
IN PDNS_RECORD pAddRecords, __in_opt PDNS_RECORD pAddRecords,
IN PDNS_RECORD pDeleteRecords, __in_opt PDNS_RECORD pDeleteRecords,
IN DWORD Options, __in DWORD Options,
IN HANDLE hContext, OPTIONAL __in_opt HANDLE hCredentials,
IN PIP4_ARRAY pServerList, OPTIONAL __inout_opt PVOID pExtraList,
IN PVOID pReserved __inout_opt PVOID pReserved
); );
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsModifyRecordsInSet_A( DnsModifyRecordsInSet_A(
IN PDNS_RECORD pAddRecords, __in_opt PDNS_RECORD pAddRecords,
IN PDNS_RECORD pDeleteRecords, __in_opt PDNS_RECORD pDeleteRecords,
IN DWORD Options, __in DWORD Options,
IN HANDLE hContext, OPTIONAL __in_opt HANDLE hCredentials,
IN PIP4_ARRAY pServerList, OPTIONAL __inout_opt PVOID pExtraList,
IN PVOID pReserved __inout_opt PVOID pReserved
); );
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsModifyRecordsInSet_UTF8( DnsModifyRecordsInSet_UTF8(
IN PDNS_RECORD pAddRecords, __in_opt PDNS_RECORD pAddRecords,
IN PDNS_RECORD pDeleteRecords, __in_opt PDNS_RECORD pDeleteRecords,
IN DWORD Options, __in DWORD Options,
IN HANDLE hContext, OPTIONAL __in_opt HANDLE hCredentials,
IN PIP4_ARRAY pServerList, OPTIONAL __inout_opt PVOID pExtraList,
IN PVOID pReserved __inout_opt PVOID pReserved
); );
#ifdef UNICODE #ifdef UNICODE
#define DnsModifyRecordsInSet DnsModifyRecordsInSet_W #define DnsModifyRecordsInSet DnsModifyRecordsInSet_W
#else #else
#define DnsModifyRecordsInSet DnsModifyRecordsInSet_A #define DnsModifyRecordsInSet DnsModifyRecordsInSet_A
#endif #endif
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsReplaceRecordSetW( DnsReplaceRecordSetW(
IN PDNS_RECORD pNewSet, __in PDNS_RECORD pReplaceSet,
IN DWORD Options, __in DWORD Options,
IN HANDLE hContext, OPTIONAL __in_opt HANDLE hContext,
IN PIP4_ARRAY pServerList, OPTIONAL __inout_opt PVOID pExtraInfo,
IN PVOID pReserved __inout_opt PVOID pReserved
); );
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsReplaceRecordSetA( DnsReplaceRecordSetA(
IN PDNS_RECORD pNewSet, __in PDNS_RECORD pReplaceSet,
IN DWORD Options, __in DWORD Options,
IN HANDLE hContext, OPTIONAL __in_opt HANDLE hContext,
IN PIP4_ARRAY pServerList, OPTIONAL __inout_opt PVOID pExtraInfo,
IN PVOID pReserved __inout_opt PVOID pReserved
); );
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsReplaceRecordSetUTF8( DnsReplaceRecordSetUTF8(
IN PDNS_RECORD pNewSet, __in PDNS_RECORD pReplaceSet,
IN DWORD Options, __in DWORD Options,
IN HANDLE hContext, OPTIONAL __in_opt HANDLE hContext,
IN PIP4_ARRAY pServerList, OPTIONAL __inout_opt PVOID pExtraInfo,
IN PVOID pReserved __inout_opt PVOID pReserved
); );
#ifdef UNICODE #ifdef UNICODE
#define DnsReplaceRecordSet DnsReplaceRecordSetW #define DnsReplaceRecordSet DnsReplaceRecordSetW
#else #else
#define DnsReplaceRecordSet DnsReplaceRecordSetA #define DnsReplaceRecordSet DnsReplaceRecordSetA
#endif #endif
// //
// DNS name validation // DNS name validation
// //
skipping to change at line 1757 skipping to change at line 1811
DnsNameDomain, DnsNameDomain,
DnsNameDomainLabel, DnsNameDomainLabel,
DnsNameHostnameFull, DnsNameHostnameFull,
DnsNameHostnameLabel, DnsNameHostnameLabel,
DnsNameWildcard, DnsNameWildcard,
DnsNameSrvRecord DnsNameSrvRecord
} }
DNS_NAME_FORMAT; DNS_NAME_FORMAT;
DNS_STATUS DNS_STATUS
DnsValidateName_UTF8( DnsValidateName_W(
IN LPCSTR pszName, __in PCWSTR pszName,
IN DNS_NAME_FORMAT Format __in DNS_NAME_FORMAT Format
); );
DNS_STATUS DNS_STATUS
DnsValidateName_W( DnsValidateName_A(
IN LPCWSTR pwszName, __in PCSTR pszName,
IN DNS_NAME_FORMAT Format __in DNS_NAME_FORMAT Format
); );
DNS_STATUS DNS_STATUS
DnsValidateName_A( DnsValidateName_UTF8(
IN LPCSTR pszName, __in PCSTR pszName,
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 name comparison // DNS name comparison
// //
BOOL BOOL
WINAPI WINAPI
DnsNameCompare_A( DnsNameCompare_A(
IN LPSTR pName1, __in PCSTR pName1,
IN LPSTR pName2 __in PCSTR pName2
); );
BOOL BOOL
WINAPI WINAPI
DnsNameCompare_W( DnsNameCompare_W(
IN LPWSTR pName1, __in PCWSTR pName1,
IN LPWSTR pName2 __in PCWSTR pName2
); );
#ifdef UNICODE #ifdef UNICODE
#define DnsNameCompare(n1,n2) DnsNameCompare_W( (n1),(n2) ) #define DnsNameCompare(n1,n2) DnsNameCompare_W( (n1),(n2) )
#else #else
#define DnsNameCompare(n1,n2) DnsNameCompare_A( (n1),(n2) ) #define DnsNameCompare(n1,n2) DnsNameCompare_A( (n1),(n2) )
#endif #endif
// //
// DNS message "roll-your-own" routines // DNS message "roll-your-own" routines
skipping to change at line 1818 skipping to change at line 1872
typedef struct _DNS_MESSAGE_BUFFER typedef struct _DNS_MESSAGE_BUFFER
{ {
DNS_HEADER MessageHead; DNS_HEADER MessageHead;
CHAR MessageBody[1]; CHAR MessageBody[1];
} }
DNS_MESSAGE_BUFFER, *PDNS_MESSAGE_BUFFER; DNS_MESSAGE_BUFFER, *PDNS_MESSAGE_BUFFER;
BOOL BOOL
WINAPI WINAPI
DnsWriteQuestionToBuffer_W( DnsWriteQuestionToBuffer_W(
IN OUT PDNS_MESSAGE_BUFFER pDnsBuffer, __inout PDNS_MESSAGE_BUFFER pDnsBuffer,
IN OUT PDWORD pdwBufferSize, __inout PDWORD pdwBufferSize,
IN LPWSTR pszName, __in PCWSTR pszName,
IN WORD wType, __in WORD wType,
IN WORD Xid, __in WORD Xid,
IN BOOL fRecursionDesired __in BOOL fRecursionDesired
); );
BOOL WINAPI BOOL
WINAPI
DnsWriteQuestionToBuffer_UTF8( DnsWriteQuestionToBuffer_UTF8(
IN OUT PDNS_MESSAGE_BUFFER pDnsBuffer, __inout PDNS_MESSAGE_BUFFER pDnsBuffer,
IN OUT LPDWORD pdwBufferSize, __inout PDWORD pdwBufferSize,
IN LPSTR pszName, __in PCSTR pszName,
IN WORD wType, __in WORD wType,
IN WORD Xid, __in WORD Xid,
IN BOOL fRecursionDesired __in BOOL fRecursionDesired
); );
DNS_STATUS DNS_STATUS
WINAPI WINAPI
DnsExtractRecordsFromMessage_W( DnsExtractRecordsFromMessage_W(
IN PDNS_MESSAGE_BUFFER pDnsBuffer, __in PDNS_MESSAGE_BUFFER pDnsBuffer,
IN WORD wMessageLength, __in WORD wMessageLength,
OUT PDNS_RECORD * ppRecord __deref_out PDNS_RECORD * ppRecord
); );
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,
OUT PDNS_RECORD * ppRecord __deref_out PDNS_RECORD * ppRecord
); );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif // __cplusplus #endif // __cplusplus
#endif // _WINDNS_INCLUDED_ #endif // _WINDNS_INCLUDED_
 End of changes. 60 change blocks. 
148 lines changed or deleted 202 lines changed or added

This html diff was produced by rfcdiff 1.41.