[PSDK] Apply our header formatting style on windns.h. NFC.

svn path=/trunk/; revision=66431
This commit is contained in:
Amine Khaldi 2015-02-23 18:54:14 +00:00
parent e9c44033b2
commit d207a7e9cb

View file

@ -1,156 +1,166 @@
#ifndef _WINDNS_H #ifndef _WINDNS_INCLUDED_
#define _WINDNS_H #define _WINDNS_INCLUDED_
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#define DNS_QUERY_STANDARD 0x0 #define DNS_QUERY_STANDARD 0x0
#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x1 #define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x1
#define DNS_QUERY_USE_TCP_ONLY 0x2 #define DNS_QUERY_USE_TCP_ONLY 0x2
#define DNS_QUERY_NO_RECURSION 0x4 #define DNS_QUERY_NO_RECURSION 0x4
#define DNS_QUERY_BYPASS_CACHE 0x8 #define DNS_QUERY_BYPASS_CACHE 0x8
#define DNS_QUERY_NO_WIRE_QUERY 0x10 #define DNS_QUERY_NO_WIRE_QUERY 0x10
#define DNS_QUERY_NO_LOCAL_NAME 0x20 #define DNS_QUERY_NO_LOCAL_NAME 0x20
#define DNS_QUERY_NO_HOSTS_FILE 0x40 #define DNS_QUERY_NO_HOSTS_FILE 0x40
#define DNS_QUERY_NO_NETBT 0x80 #define DNS_QUERY_NO_NETBT 0x80
#define DNS_QUERY_TREAT_AS_FQDN 0x1000 #define DNS_QUERY_TREAT_AS_FQDN 0x1000
#define DNS_QUERY_WIRE_ONLY 0x100 #define DNS_QUERY_WIRE_ONLY 0x100
#define DNS_QUERY_RETURN_MESSAGE 0x200 #define DNS_QUERY_RETURN_MESSAGE 0x200
#define DNS_QUERY_DONT_RESET_TTL_VALUES 0x100000 #define DNS_QUERY_DONT_RESET_TTL_VALUES 0x100000
#define DNS_QUERY_RESERVED 0xff000000 #define DNS_QUERY_RESERVED 0xff000000
#define DNS_UPDATE_SECURITY_USE_DEFAULT 0x0 #define DNS_UPDATE_SECURITY_USE_DEFAULT 0x0
#define DNS_UPDATE_SECURITY_OFF 0x10 #define DNS_UPDATE_SECURITY_OFF 0x10
#define DNS_UPDATE_SECURITY_ON 0x20 #define DNS_UPDATE_SECURITY_ON 0x20
#define DNS_UPDATE_SECURITY_ONLY 0x100 #define DNS_UPDATE_SECURITY_ONLY 0x100
#define DNS_UPDATE_CACHE_SECURITY_CONTEXT 0x200 #define DNS_UPDATE_CACHE_SECURITY_CONTEXT 0x200
#define DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT 0x400 #define DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT 0x400
#define DNS_UPDATE_FORCE_SECURITY_NEGO 0x800 #define DNS_UPDATE_FORCE_SECURITY_NEGO 0x800
#define DNS_UPDATE_RESERVED 0xffff0000 #define DNS_UPDATE_RESERVED 0xffff0000
#define DNS_CONFIG_FLAG_ALLOC TRUE #define DNS_CONFIG_FLAG_ALLOC TRUE
#ifndef RC_INVOKE #ifndef RC_INVOKE
typedef DWORD IP4_ADDRESS; typedef DWORD IP4_ADDRESS;
typedef _Return_type_success_(return == 0) DWORD DNS_STATUS; typedef _Return_type_success_(return == 0) DWORD DNS_STATUS;
#define DNS_TYPE_ZERO 0x0000
#define DNS_TYPE_A 0x0001 #define DNS_TYPE_ZERO 0x0000
#define DNS_TYPE_NS 0x0002 #define DNS_TYPE_A 0x0001
#define DNS_TYPE_MD 0x0003 #define DNS_TYPE_NS 0x0002
#define DNS_TYPE_MF 0x0004 #define DNS_TYPE_MD 0x0003
#define DNS_TYPE_CNAME 0x0005 #define DNS_TYPE_MF 0x0004
#define DNS_TYPE_SOA 0x0006 #define DNS_TYPE_CNAME 0x0005
#define DNS_TYPE_MB 0x0007 #define DNS_TYPE_SOA 0x0006
#define DNS_TYPE_MG 0x0008 #define DNS_TYPE_MB 0x0007
#define DNS_TYPE_MR 0x0009 #define DNS_TYPE_MG 0x0008
#define DNS_TYPE_NULL 0x000a #define DNS_TYPE_MR 0x0009
#define DNS_TYPE_WKS 0x000b #define DNS_TYPE_NULL 0x000a
#define DNS_TYPE_PTR 0x000c #define DNS_TYPE_WKS 0x000b
#define DNS_TYPE_HINFO 0x000d #define DNS_TYPE_PTR 0x000c
#define DNS_TYPE_MINFO 0x000e #define DNS_TYPE_HINFO 0x000d
#define DNS_TYPE_MX 0x000f #define DNS_TYPE_MINFO 0x000e
#define DNS_TYPE_TEXT 0x0010 #define DNS_TYPE_MX 0x000f
#define DNS_TYPE_RP 0x0011 #define DNS_TYPE_TEXT 0x0010
#define DNS_TYPE_AFSDB 0x0012 #define DNS_TYPE_RP 0x0011
#define DNS_TYPE_X25 0x0013 #define DNS_TYPE_AFSDB 0x0012
#define DNS_TYPE_ISDN 0x0014 #define DNS_TYPE_X25 0x0013
#define DNS_TYPE_RT 0x0015 #define DNS_TYPE_ISDN 0x0014
#define DNS_TYPE_NSAP 0x0016 #define DNS_TYPE_RT 0x0015
#define DNS_TYPE_NSAPPTR 0x0017 #define DNS_TYPE_NSAP 0x0016
#define DNS_TYPE_SIG 0x0018 #define DNS_TYPE_NSAPPTR 0x0017
#define DNS_TYPE_KEY 0x0019 #define DNS_TYPE_SIG 0x0018
#define DNS_TYPE_PX 0x001a #define DNS_TYPE_KEY 0x0019
#define DNS_TYPE_GPOS 0x001b #define DNS_TYPE_PX 0x001a
#define DNS_TYPE_AAAA 0x001c #define DNS_TYPE_GPOS 0x001b
#define DNS_TYPE_LOC 0x001d #define DNS_TYPE_AAAA 0x001c
#define DNS_TYPE_NXT 0x001e #define DNS_TYPE_LOC 0x001d
#define DNS_TYPE_EID 0x001f #define DNS_TYPE_NXT 0x001e
#define DNS_TYPE_NIMLOC 0x0020 #define DNS_TYPE_EID 0x001f
#define DNS_TYPE_SRV 0x0021 #define DNS_TYPE_NIMLOC 0x0020
#define DNS_TYPE_ATMA 0x0022 #define DNS_TYPE_SRV 0x0021
#define DNS_TYPE_NAPTR 0x0023 #define DNS_TYPE_ATMA 0x0022
#define DNS_TYPE_KX 0x0024 #define DNS_TYPE_NAPTR 0x0023
#define DNS_TYPE_CERT 0x0025 #define DNS_TYPE_KX 0x0024
#define DNS_TYPE_A6 0x0026 #define DNS_TYPE_CERT 0x0025
#define DNS_TYPE_DNAME 0x0027 #define DNS_TYPE_A6 0x0026
#define DNS_TYPE_SINK 0x0028 #define DNS_TYPE_DNAME 0x0027
#define DNS_TYPE_OPT 0x0029 #define DNS_TYPE_SINK 0x0028
#define DNS_TYPE_UINFO 0x0064 #define DNS_TYPE_OPT 0x0029
#define DNS_TYPE_UID 0x0065 #define DNS_TYPE_UINFO 0x0064
#define DNS_TYPE_GID 0x0066 #define DNS_TYPE_UID 0x0065
#define DNS_TYPE_UNSPEC 0x0067 #define DNS_TYPE_GID 0x0066
#define DNS_TYPE_ADDRS 0x00f8 #define DNS_TYPE_UNSPEC 0x0067
#define DNS_TYPE_TKEY 0x00f9 #define DNS_TYPE_ADDRS 0x00f8
#define DNS_TYPE_TSIG 0x00fa #define DNS_TYPE_TKEY 0x00f9
#define DNS_TYPE_IXFR 0x00fb #define DNS_TYPE_TSIG 0x00fa
#define DNS_TYPE_AXFR 0x00fc #define DNS_TYPE_IXFR 0x00fb
#define DNS_TYPE_MAILB 0x00fd #define DNS_TYPE_AXFR 0x00fc
#define DNS_TYPE_MAILA 0x00fe #define DNS_TYPE_MAILB 0x00fd
#define DNS_TYPE_ALL 0x00ff #define DNS_TYPE_MAILA 0x00fe
#define DNS_TYPE_ANY 0x00ff #define DNS_TYPE_ALL 0x00ff
#define DNS_TYPE_ANY 0x00ff
#define DNS_TYPE_WINS 0xff01 #define DNS_TYPE_WINS 0xff01
#define DNS_TYPE_WINSR 0xff02 #define DNS_TYPE_WINSR 0xff02
#define DNS_TYPE_NBSTAT (DNS_TYPE_WINSR) #define DNS_TYPE_NBSTAT (DNS_TYPE_WINSR)
typedef enum _DNS_CHARSET #define DNSREC_QUESTION 0
{ #define DNSREC_ANSWER 1
DnsCharSetUnknown, #define DNSREC_AUTHORITY 2
DnsCharSetUnicode, #define DNSREC_ADDITIONAL 3
DnsCharSetUtf8,
DnsCharSetAnsi #define DNS_ATMA_MAX_ADDR_LENGTH 20
typedef enum _DNS_CHARSET {
DnsCharSetUnknown,
DnsCharSetUnicode,
DnsCharSetUtf8,
DnsCharSetAnsi
} DNS_CHARSET; } DNS_CHARSET;
typedef enum
{ typedef enum {
DnsConfigPrimaryDomainName_W, DnsConfigPrimaryDomainName_W,
DnsConfigPrimaryDomainName_A, DnsConfigPrimaryDomainName_A,
DnsConfigPrimaryDomainName_UTF8, DnsConfigPrimaryDomainName_UTF8,
DnsConfigAdapterDomainName_W, DnsConfigAdapterDomainName_W,
DnsConfigAdapterDomainName_A, DnsConfigAdapterDomainName_A,
DnsConfigAdapterDomainName_UTF8, DnsConfigAdapterDomainName_UTF8,
DnsConfigDnsServerList, DnsConfigDnsServerList,
DnsConfigSearchList, DnsConfigSearchList,
DnsConfigAdapterInfo, DnsConfigAdapterInfo,
DnsConfigPrimaryHostNameRegistrationEnabled, DnsConfigPrimaryHostNameRegistrationEnabled,
DnsConfigAdapterHostNameRegistrationEnabled, DnsConfigAdapterHostNameRegistrationEnabled,
DnsConfigAddressRegistrationMaxCount, DnsConfigAddressRegistrationMaxCount,
DnsConfigHostName_W, DnsConfigHostName_W,
DnsConfigHostName_A, DnsConfigHostName_A,
DnsConfigHostName_UTF8, DnsConfigHostName_UTF8,
DnsConfigFullHostName_W, DnsConfigFullHostName_W,
DnsConfigFullHostName_A, DnsConfigFullHostName_A,
DnsConfigFullHostName_UTF8 DnsConfigFullHostName_UTF8
} DNS_CONFIG_TYPE; } DNS_CONFIG_TYPE;
typedef enum
{ typedef enum {
DnsFreeFlat = 0, DnsFreeFlat = 0,
DnsFreeRecordList, DnsFreeRecordList,
DnsFreeParsedMessageFields DnsFreeParsedMessageFields
} DNS_FREE_TYPE; } DNS_FREE_TYPE;
typedef enum _DNS_NAME_FORMAT
{ typedef enum _DNS_NAME_FORMAT {
DnsNameDomain, DnsNameDomain,
DnsNameDomainLabel, DnsNameDomainLabel,
DnsNameHostnameFull, DnsNameHostnameFull,
DnsNameHostnameLabel, DnsNameHostnameLabel,
DnsNameWildcard, DnsNameWildcard,
DnsNameSrvRecord DnsNameSrvRecord
} DNS_NAME_FORMAT; } DNS_NAME_FORMAT;
typedef enum
{ typedef enum {
DnsSectionQuestion, DnsSectionQuestion,
DnsSectionAnswer, DnsSectionAnswer,
DnsSectionAuthority, DnsSectionAuthority,
DnsSectionAdditional DnsSectionAdditional
} DNS_SECTION; } DNS_SECTION;
typedef struct _IP4_ARRAY { typedef struct _IP4_ARRAY {
DWORD AddrCount; DWORD AddrCount;
IP4_ADDRESS AddrArray[1]; IP4_ADDRESS AddrArray[1];
} IP4_ARRAY, *PIP4_ARRAY; } IP4_ARRAY, *PIP4_ARRAY;
typedef struct { typedef struct {
DWORD IP6Dword[4]; DWORD IP6Dword[4];
} IP6_ADDRESS, *PIP6_ADDRESS, DNS_IP6_ADDRESS, *PDNS_IP6_ADDRESS; } IP6_ADDRESS, *PIP6_ADDRESS, DNS_IP6_ADDRESS, *PDNS_IP6_ADDRESS;
#pragma pack(push, 1) #pragma pack(push, 1)
@ -188,294 +198,319 @@ typedef struct _DNS_WIRE_RECORD {
#pragma pack(pop) #pragma pack(pop)
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;
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;
DWORD Reserved :24; DWORD Reserved:24;
} DNS_RECORD_FLAGS; } DNS_RECORD_FLAGS;
#define DNSREC_QUESTION 0
#define DNSREC_ANSWER 1
#define DNSREC_AUTHORITY 2
#define DNSREC_ADDITIONAL 3
typedef struct { typedef struct {
IP4_ADDRESS IpAddress; IP4_ADDRESS IpAddress;
} DNS_A_DATA, *PDNS_A_DATA; } DNS_A_DATA, *PDNS_A_DATA;
typedef struct { typedef struct {
DNS_IP6_ADDRESS Ip6Address; DNS_IP6_ADDRESS Ip6Address;
} DNS_AAAA_DATA, *PDNS_AAAA_DATA; } DNS_AAAA_DATA, *PDNS_AAAA_DATA;
#define DNS_ATMA_MAX_ADDR_LENGTH 20
typedef struct { typedef struct {
BYTE AddressType; BYTE AddressType;
BYTE Address[DNS_ATMA_MAX_ADDR_LENGTH]; BYTE Address[DNS_ATMA_MAX_ADDR_LENGTH];
} DNS_ATMA_DATA, *PDNS_ATMA_DATA; } DNS_ATMA_DATA, *PDNS_ATMA_DATA;
typedef struct { typedef struct {
WORD wFlags; WORD wFlags;
BYTE chProtocol; BYTE chProtocol;
BYTE chAlgorithm; BYTE chAlgorithm;
BYTE Key[1]; BYTE Key[1];
} DNS_KEY_DATA, *PDNS_KEY_DATA; } DNS_KEY_DATA, *PDNS_KEY_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;
} DNS_LOC_DATA, *PDNS_LOC_DATA; } DNS_LOC_DATA, *PDNS_LOC_DATA;
typedef struct { typedef struct {
LPSTR pNameMailbox; LPSTR pNameMailbox;
LPSTR pNameErrorsMailbox; LPSTR pNameErrorsMailbox;
} DNS_MINFO_DATAA, *PDNS_MINFO_DATAA; } DNS_MINFO_DATAA, *PDNS_MINFO_DATAA;
typedef struct { typedef struct {
LPWSTR pNameMailbox; LPWSTR pNameMailbox;
LPWSTR pNameErrorsMailbox; LPWSTR pNameErrorsMailbox;
} DNS_MINFO_DATAW, *PDNS_MINFO_DATAW; } DNS_MINFO_DATAW, *PDNS_MINFO_DATAW;
typedef struct { typedef struct {
LPSTR pNameExchange; LPSTR pNameExchange;
WORD wPreference; WORD wPreference;
WORD Pad; WORD Pad;
} DNS_MX_DATAA, *PDNS_MX_DATAA; } DNS_MX_DATAA, *PDNS_MX_DATAA;
typedef struct { typedef struct {
LPWSTR pNameExchange; LPWSTR pNameExchange;
WORD wPreference; WORD wPreference;
WORD Pad; WORD Pad;
} DNS_MX_DATAW, *PDNS_MX_DATAW; } DNS_MX_DATAW, *PDNS_MX_DATAW;
typedef struct { typedef struct {
DWORD dwByteCount; DWORD dwByteCount;
BYTE Data[1]; BYTE Data[1];
} DNS_NULL_DATA, *PDNS_NULL_DATA; } DNS_NULL_DATA, *PDNS_NULL_DATA;
typedef struct { typedef struct {
LPSTR pNameNext; LPSTR pNameNext;
WORD wNumTypes; WORD wNumTypes;
WORD wTypes[1]; WORD wTypes[1];
} DNS_NXT_DATAA, *PDNS_NXT_DATAA; } DNS_NXT_DATAA, *PDNS_NXT_DATAA;
typedef struct { typedef struct {
LPWSTR pNameNext; LPWSTR pNameNext;
WORD wNumTypes; WORD wNumTypes;
WORD wTypes[1]; WORD wTypes[1];
} DNS_NXT_DATAW, *PDNS_NXT_DATAW; } DNS_NXT_DATAW, *PDNS_NXT_DATAW;
typedef struct { typedef struct {
LPSTR pNameHost; LPSTR pNameHost;
} DNS_PTR_DATAA, *PDNS_PTR_DATAA; } DNS_PTR_DATAA, *PDNS_PTR_DATAA;
typedef struct { typedef struct {
LPWSTR pNameHost; LPWSTR pNameHost;
} DNS_PTR_DATAW, *PDNS_PTR_DATAW; } DNS_PTR_DATAW, *PDNS_PTR_DATAW;
typedef struct { typedef struct {
LPSTR pNameSigner; LPSTR 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; WORD Pad;
BYTE Signature[1]; BYTE Signature[1];
} DNS_SIG_DATAA, *PDNS_SIG_DATAA; } DNS_SIG_DATAA, *PDNS_SIG_DATAA;
typedef struct { typedef struct {
LPWSTR pNameSigner; LPWSTR 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; WORD Pad;
BYTE Signature[1]; BYTE Signature[1];
} DNS_SIG_DATAW, *PDNS_SIG_DATAW; } DNS_SIG_DATAW, *PDNS_SIG_DATAW;
typedef struct { typedef struct {
LPSTR pNamePrimaryServer; LPSTR pNamePrimaryServer;
LPSTR pNameAdministrator; LPSTR pNameAdministrator;
DWORD dwSerialNo; DWORD dwSerialNo;
DWORD dwRefresh; DWORD dwRefresh;
DWORD dwRetry; DWORD dwRetry;
DWORD dwExpire; DWORD dwExpire;
DWORD dwDefaultTtl; DWORD dwDefaultTtl;
} DNS_SOA_DATAA, *PDNS_SOA_DATAA; } DNS_SOA_DATAA, *PDNS_SOA_DATAA;
typedef struct { typedef struct {
LPWSTR pNamePrimaryServer; LPWSTR pNamePrimaryServer;
LPWSTR pNameAdministrator; LPWSTR pNameAdministrator;
DWORD dwSerialNo; DWORD dwSerialNo;
DWORD dwRefresh; DWORD dwRefresh;
DWORD dwRetry; DWORD dwRetry;
DWORD dwExpire; DWORD dwExpire;
DWORD dwDefaultTtl; DWORD dwDefaultTtl;
} DNS_SOA_DATAW, *PDNS_SOA_DATAW; } DNS_SOA_DATAW, *PDNS_SOA_DATAW;
typedef struct { typedef struct {
LPSTR pNameTarget; LPSTR pNameTarget;
WORD wPriority; WORD wPriority;
WORD wWeight; WORD wWeight;
WORD wPort; WORD wPort;
WORD Pad; WORD Pad;
} DNS_SRV_DATAA, *PDNS_SRV_DATAA; } DNS_SRV_DATAA, *PDNS_SRV_DATAA;
typedef struct { typedef struct {
LPWSTR pNameTarget; LPWSTR pNameTarget;
WORD wPriority; WORD wPriority;
WORD wWeight; WORD wWeight;
WORD wPort; WORD wPort;
WORD Pad; WORD Pad;
} DNS_SRV_DATAW, *PDNS_SRV_DATAW; } DNS_SRV_DATAW, *PDNS_SRV_DATAW;
typedef struct { typedef struct {
DWORD dwStringCount; DWORD dwStringCount;
LPSTR pStringArray[1]; LPSTR pStringArray[1];
} DNS_TXT_DATAA, *PDNS_TXT_DATAA; } DNS_TXT_DATAA, *PDNS_TXT_DATAA;
typedef struct { typedef struct {
DWORD dwStringCount; DWORD dwStringCount;
LPWSTR pStringArray[1]; LPWSTR pStringArray[1];
} DNS_TXT_DATAW, *PDNS_TXT_DATAW; } DNS_TXT_DATAW, *PDNS_TXT_DATAW;
typedef struct { typedef struct {
LPSTR pNameAlgorithm; LPSTR pNameAlgorithm;
PBYTE pAlgorithmPacket; PBYTE pAlgorithmPacket;
PBYTE pKey; PBYTE pKey;
PBYTE pOtherData; PBYTE pOtherData;
DWORD dwCreateTime; DWORD dwCreateTime;
DWORD dwExpireTime; DWORD dwExpireTime;
WORD wMode; WORD wMode;
WORD wError; WORD wError;
WORD wKeyLength; WORD wKeyLength;
WORD wOtherLength; WORD wOtherLength;
UCHAR cAlgNameLength; UCHAR cAlgNameLength;
BOOL bPacketPointers; BOOL bPacketPointers;
} DNS_TKEY_DATAA, *PDNS_TKEY_DATAA; } DNS_TKEY_DATAA, *PDNS_TKEY_DATAA;
typedef struct { typedef struct {
LPWSTR pNameAlgorithm; LPWSTR pNameAlgorithm;
PBYTE pAlgorithmPacket; PBYTE pAlgorithmPacket;
PBYTE pKey; PBYTE pKey;
PBYTE pOtherData; PBYTE pOtherData;
DWORD dwCreateTime; DWORD dwCreateTime;
DWORD dwExpireTime; DWORD dwExpireTime;
WORD wMode; WORD wMode;
WORD wError; WORD wError;
WORD wKeyLength; WORD wKeyLength;
WORD wOtherLength; WORD wOtherLength;
UCHAR cAlgNameLength; UCHAR cAlgNameLength;
BOOL bPacketPointers; BOOL bPacketPointers;
} DNS_TKEY_DATAW, *PDNS_TKEY_DATAW; } DNS_TKEY_DATAW, *PDNS_TKEY_DATAW;
typedef struct { typedef struct {
LPSTR pNameAlgorithm; LPSTR pNameAlgorithm;
PBYTE pAlgorithmPacket; PBYTE pAlgorithmPacket;
PBYTE pSignature; PBYTE pSignature;
PBYTE pOtherData; PBYTE pOtherData;
LONGLONG i64CreateTime; LONGLONG i64CreateTime;
WORD wFudgeTime; WORD wFudgeTime;
WORD wOriginalXid; WORD wOriginalXid;
WORD wError; WORD wError;
WORD wSigLength; WORD wSigLength;
WORD wOtherLength; WORD wOtherLength;
UCHAR cAlgNameLength; UCHAR cAlgNameLength;
BOOL bPacketPointers; BOOL bPacketPointers;
} DNS_TSIG_DATAA, *PDNS_TSIG_DATAA; } DNS_TSIG_DATAA, *PDNS_TSIG_DATAA;
typedef struct { typedef struct {
LPWSTR pNameAlgorithm; LPWSTR pNameAlgorithm;
PBYTE pAlgorithmPacket; PBYTE pAlgorithmPacket;
PBYTE pSignature; PBYTE pSignature;
PBYTE pOtherData; PBYTE pOtherData;
LONGLONG i64CreateTime; LONGLONG i64CreateTime;
WORD wFudgeTime; WORD wFudgeTime;
WORD wOriginalXid; WORD wOriginalXid;
WORD wError; WORD wError;
WORD wSigLength; WORD wSigLength;
WORD wOtherLength; WORD wOtherLength;
UCHAR cAlgNameLength; UCHAR cAlgNameLength;
BOOL bPacketPointers; BOOL bPacketPointers;
} DNS_TSIG_DATAW, *PDNS_TSIG_DATAW; } DNS_TSIG_DATAW, *PDNS_TSIG_DATAW;
typedef struct { typedef struct {
DWORD dwMappingFlag; DWORD dwMappingFlag;
DWORD dwLookupTimeout; DWORD dwLookupTimeout;
DWORD dwCacheTimeout; DWORD dwCacheTimeout;
DWORD cWinsServerCount; DWORD cWinsServerCount;
IP4_ADDRESS WinsServers[1]; IP4_ADDRESS WinsServers[1];
} DNS_WINS_DATA, *PDNS_WINS_DATA; } DNS_WINS_DATA, *PDNS_WINS_DATA;
typedef struct { typedef struct {
DWORD dwMappingFlag; DWORD dwMappingFlag;
DWORD dwLookupTimeout; DWORD dwLookupTimeout;
DWORD dwCacheTimeout; DWORD dwCacheTimeout;
LPSTR pNameResultDomain; LPSTR pNameResultDomain;
} DNS_WINSR_DATAA, *PDNS_WINSR_DATAA; } DNS_WINSR_DATAA, *PDNS_WINSR_DATAA;
typedef struct { typedef struct {
DWORD dwMappingFlag; DWORD dwMappingFlag;
DWORD dwLookupTimeout; DWORD dwLookupTimeout;
DWORD dwCacheTimeout; DWORD dwCacheTimeout;
LPWSTR pNameResultDomain; LPWSTR pNameResultDomain;
} DNS_WINSR_DATAW, *PDNS_WINSR_DATAW; } DNS_WINSR_DATAW, *PDNS_WINSR_DATAW;
typedef struct { typedef struct {
IP4_ADDRESS IpAddress; IP4_ADDRESS IpAddress;
UCHAR chProtocol; UCHAR chProtocol;
BYTE BitMask[1]; BYTE BitMask[1];
} DNS_WKS_DATA, *PDNS_WKS_DATA; } DNS_WKS_DATA, *PDNS_WKS_DATA;
typedef struct _DnsRecordA { typedef struct _DnsRecordA {
struct _DnsRecordA* pNext; struct _DnsRecordA* pNext;
LPSTR pName; LPSTR pName;
WORD wType; WORD wType;
WORD wDataLength; WORD wDataLength;
union { union {
DWORD DW; DWORD DW;
DNS_RECORD_FLAGS S; DNS_RECORD_FLAGS S;
} Flags; } Flags;
DWORD dwTtl; DWORD dwTtl;
DWORD dwReserved; DWORD dwReserved;
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, NS, Ns, CNAME, Cname, MB, Mb, DNS_PTR_DATAA PTR, Ptr, NS, Ns, CNAME, Cname, MB, Mb, MD, Md, MF, Mf, MG, Mg, MR, Mr;
MD, Md, MF, Mf, MG, Mg, MR, Mr; DNS_MINFO_DATAA MINFO, Minfo, RP, Rp;
DNS_MINFO_DATAA MINFO, Minfo, RP, Rp; DNS_MX_DATAA MX, Mx, AFSDB, Afsdb, RT, Rt;
DNS_MX_DATAA MX, Mx, AFSDB, Afsdb, RT, Rt; DNS_TXT_DATAA HINFO, Hinfo, ISDN, Isdn, TXT, Txt, X25;
DNS_TXT_DATAA HINFO, Hinfo, ISDN, Isdn, TXT, Txt, 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_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;
typedef struct _DnsRecordW { typedef struct _DnsRecordW {
struct _DnsRecordW* pNext; struct _DnsRecordW* pNext;
LPWSTR pName; LPWSTR pName;
WORD wType; WORD wType;
WORD wDataLength; WORD wDataLength;
union { union {
DWORD DW; DWORD DW;
DNS_RECORD_FLAGS S; DNS_RECORD_FLAGS S;
} Flags; } Flags;
DWORD dwTtl; DWORD dwTtl;
DWORD dwReserved; DWORD dwReserved;
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, NS, Ns, CNAME, Cname, MB, Mb, DNS_PTR_DATAW PTR, Ptr, NS, Ns, CNAME, Cname, MB, Mb, MD, Md, MF, Mf, MG, Mg, MR, Mr;
MD, Md, MF, Mf, MG, Mg, MR, Mr; DNS_MINFO_DATAW MINFO, Minfo, RP, Rp;
DNS_MINFO_DATAW MINFO, Minfo, RP, Rp; DNS_MX_DATAW MX, Mx, AFSDB, Afsdb, RT, Rt;
DNS_MX_DATAW MX, Mx, AFSDB, Afsdb, RT, Rt; DNS_TXT_DATAW HINFO, Hinfo, ISDN, Isdn, TXT, Txt, X25;
DNS_TXT_DATAW HINFO, Hinfo, ISDN, Isdn, TXT, Txt, 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_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;
#ifdef UNICODE #ifdef UNICODE
@ -487,18 +522,18 @@ typedef struct _DnsRecordW {
#endif #endif
typedef struct _DnsRRSet { typedef struct _DnsRRSet {
PDNS_RECORD pFirstRR; PDNS_RECORD pFirstRR;
PDNS_RECORD pLastRR; PDNS_RECORD pLastRR;
} DNS_RRSET, *PDNS_RRSET; } DNS_RRSET, *PDNS_RRSET;
#define DNS_RRSET_INIT( rrset ) \ #define DNS_RRSET_INIT(rrset) \
{ \ { \
PDNS_RRSET _prrset = &(rrset); \ PDNS_RRSET _prrset = &(rrset); \
_prrset->pFirstRR = NULL; \ _prrset->pFirstRR = NULL; \
_prrset->pLastRR = (PDNS_RECORD) &_prrset->pFirstRR; \ _prrset->pLastRR = (PDNS_RECORD) &_prrset->pFirstRR; \
} }
#define DNS_RRSET_ADD( rrset, pnewRR ) \ #define DNS_RRSET_ADD(rrset, pnewRR) \
{ \ { \
PDNS_RRSET _prrset = &(rrset); \ PDNS_RRSET _prrset = &(rrset); \
PDNS_RECORD _prrnew = (pnewRR); \ PDNS_RECORD _prrnew = (pnewRR); \
@ -506,7 +541,7 @@ typedef struct _DnsRRSet {
_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; \
@ -570,8 +605,17 @@ DnsModifyRecordsInSet_UTF8(
_Inout_opt_ PIP4_ARRAY pExtraList, _Inout_opt_ PIP4_ARRAY pExtraList,
_Inout_opt_ PVOID pReserved); _Inout_opt_ PVOID pReserved);
BOOL WINAPI DnsNameCompare_A(_In_ PCSTR, _In_ PCSTR); BOOL
BOOL WINAPI DnsNameCompare_W(_In_ PCWSTR, _In_ PCWSTR); WINAPI
DnsNameCompare_A(
_In_ PCSTR,
_In_ PCSTR);
BOOL
WINAPI
DnsNameCompare_W(
_In_ PCWSTR,
_In_ PCWSTR);
DNS_STATUS DNS_STATUS
WINAPI WINAPI
@ -613,7 +657,11 @@ DnsQueryConfig(
_Out_writes_bytes_to_opt_(*pBufLen, *pBufLen) PVOID pBuffer, _Out_writes_bytes_to_opt_(*pBufLen, *pBufLen) PVOID pBuffer,
_Inout_ PDWORD pBufLen); _Inout_ PDWORD pBufLen);
BOOL WINAPI DnsRecordCompare(_In_ PDNS_RECORD, _In_ PDNS_RECORD); BOOL
WINAPI
DnsRecordCompare(
_In_ PDNS_RECORD,
_In_ PDNS_RECORD);
PDNS_RECORD PDNS_RECORD
WINAPI WINAPI
@ -622,7 +670,11 @@ DnsRecordCopyEx(
_In_ DNS_CHARSET CharSetIn, _In_ DNS_CHARSET CharSetIn,
_In_ DNS_CHARSET CharSetOut); _In_ DNS_CHARSET CharSetOut);
void WINAPI DnsRecordListFree(_Inout_opt_ PDNS_RECORD, _In_ DNS_FREE_TYPE); void
WINAPI
DnsRecordListFree(
_Inout_opt_ PDNS_RECORD,
_In_ DNS_FREE_TYPE);
BOOL BOOL
WINAPI WINAPI
@ -639,8 +691,15 @@ DnsRecordSetCopyEx(
_In_ DNS_CHARSET CharSetIn, _In_ DNS_CHARSET CharSetIn,
_In_ DNS_CHARSET CharSetOut); _In_ DNS_CHARSET CharSetOut);
PDNS_RECORD WINAPI DnsRecordSetDetach(_Inout_ PDNS_RECORD); PDNS_RECORD
void WINAPI DnsReleaseContextHandle(_In_ HANDLE); WINAPI
DnsRecordSetDetach(
_Inout_ PDNS_RECORD);
void
WINAPI
DnsReleaseContextHandle(
_In_ HANDLE);
DNS_STATUS DNS_STATUS
WINAPI WINAPI
@ -669,9 +728,23 @@ DnsReplaceRecordSetUTF8(
_Inout_opt_ PIP4_ARRAY pExtraInfo, _Inout_opt_ PIP4_ARRAY pExtraInfo,
_Inout_opt_ PVOID pReserved); _Inout_opt_ PVOID pReserved);
DNS_STATUS WINAPI DnsValidateName_A(_In_ LPCSTR, _In_ DNS_NAME_FORMAT); DNS_STATUS
DNS_STATUS WINAPI DnsValidateName_W(_In_ LPCWSTR, _In_ DNS_NAME_FORMAT); WINAPI
DNS_STATUS WINAPI DnsValidateName_UTF8(_In_ LPCSTR, _In_ DNS_NAME_FORMAT); DnsValidateName_A(
_In_ LPCSTR,
_In_ DNS_NAME_FORMAT);
DNS_STATUS
WINAPI
DnsValidateName_W(
_In_ LPCWSTR,
_In_ DNS_NAME_FORMAT);
DNS_STATUS
WINAPI
DnsValidateName_UTF8(
_In_ LPCSTR,
_In_ DNS_NAME_FORMAT);
BOOL BOOL
WINAPI WINAPI
@ -694,6 +767,7 @@ DnsWriteQuestionToBuffer_UTF8(
_In_ BOOL fRecursionDesired); _In_ BOOL fRecursionDesired);
#ifdef UNICODE #ifdef UNICODE
#define DNS_MINFO_DATA DNS_MINFO_DATAW #define DNS_MINFO_DATA DNS_MINFO_DATAW
#define PDNS_MINFO_DATA PDNS_MINFO_DATAW #define PDNS_MINFO_DATA PDNS_MINFO_DATAW
#define DNS_MX_DATA DNS_MX_DATAW #define DNS_MX_DATA DNS_MX_DATAW
@ -718,7 +792,9 @@ DnsWriteQuestionToBuffer_UTF8(
#define DnsQuery DnsQuery_W #define DnsQuery DnsQuery_W
#define DnsReplaceRecordSet DnsReplaceRecordSetW #define DnsReplaceRecordSet DnsReplaceRecordSetW
#define DnsValidateName DnsValidateName_W #define DnsValidateName DnsValidateName_W
#else
#else /* UNICODE */
#define DNS_MINFO_DATA DNS_MINFO_DATAA #define DNS_MINFO_DATA DNS_MINFO_DATAA
#define PDNS_MINFO_DATA PDNS_MINFO_DATAA #define PDNS_MINFO_DATA PDNS_MINFO_DATAA
#define DNS_MX_DATA DNS_MX_DATAA #define DNS_MX_DATA DNS_MX_DATAA
@ -743,7 +819,8 @@ DnsWriteQuestionToBuffer_UTF8(
#define DnsQuery DnsQuery_A #define DnsQuery DnsQuery_A
#define DnsReplaceRecordSet DnsReplaceRecordSetA #define DnsReplaceRecordSet DnsReplaceRecordSetA
#define DnsValidateName DnsValidateName_A #define DnsValidateName DnsValidateName_A
#endif
#endif /* UNICODE */
#endif /* RC_INVOKED */ #endif /* RC_INVOKED */
@ -751,4 +828,4 @@ DnsWriteQuestionToBuffer_UTF8(
} }
#endif #endif
#endif /* _WINDNS_H */ #endif /* _WINDNS_INCLUDED_ */