DNS_RECORD (Compact 2013)

3/26/2014

This DNS_RECORD structure stores DNS resource records (RR).

Syntax

typedef struct _DnsRecord {
  struct _DnsRecord* pNext;
  LPTSTR pName;
  WORD wType;
  WORD wDataLength;
    union {
      DWORD DW;
      DNS_RECORD_FLAGS S;
    } Flags;
    DWORD dwTtl;
    DWORD dwReserved;
    union {
      DNS_A_DATA A;
      DNS_SOA_DATA SOA, Soa;
      DNS_PTR_DATA PTR, Ptr, NS, Ns, CNAME, Cname, 
      MB, Mb, MD, Md, MF, Mf, MG, Mg, MR, Mr;
      DNS_MINFO_DATA MINFO, Minfo, RP, Rp;
      DNS_MX_DATA MX, Mx, AFSDB, Afsdb, RT, Rt;
      DNS_TXT_DATA HINFO, Hinfo, ISDN, Isdn, TXT, Txt, X25;
      DNS_NULL_DATA Null;
      DNS_WKS_DATA WKS, Wks;
      DNS_AAAA_DATA AAAA;
      DNS_KEY_DATA KEY, Key;
      DNS_SIG_DATA SIG, Sig;
      DNS_ATMA_DATA ATMA, Atma;
      DNS_NXT_DATA NXT, Nxt;
      DNS_SRV_DATA SRV, Srv;
      DNS_TKEY_DATA TKEY, Tkey;
      DNS_TSIG_DATA TSIG, Tsig;
      DNS_WINS_DATA WINS, Wins;
      DNS_WINSR_DATA   WINSR, WinsR, NBSTAT, Nbstat;
    } Data;
} DNS_RECORD, *PDNS_RECORD;

Members

  • pNext
    [in] Pointer to the next DNS_RECORD structure.
  • pName
    [in] Domain name of the record set to be updated. Must be in the string format that corresponds to the function being called, such as ANSI, UNICODE, or UTF8.
  • wType
    [in] DNS record type, in host byte order. Can be any of the following:

    DNS_TYPE_A

    DNS_TYPE_NS

    DNS_TYPE_MD

    DNS_TYPE_MF

    DNS_TYPE_CNAME

    DNS_TYPE_SOA

    DNS_TYPE_MB

    DNS_TYPE_MG

    DNS_TYPE_MR

    DNS_TYPE_NULL

    DNS_TYPE_WKS

    DNS_TYPE_PTR

    DNS_TYPE_HINFO

    DNS_TYPE_MINFO

    DNS_TYPE_MX

    DNS_TYPE_TEXT

  • wDataLength
    [in] Length of the data, in bytes. Fixed length data types, this value is the size of the corresponding data type, such as sizeof(DNS_A_DATA). For data types that are not fixed, use one of the following macros to determine the size of the data:

    #define DNS_TEXT_RECORD_LENGTH(StringCount) \
                (sizeof(DWORD) + ((StringCount) * sizeof(PCHAR)))
    
    #define DNS_NULL_RECORD_LENGTH(ByteCount) \
                (sizeof(DWORD) + (ByteCount))
    
    #define DNS_WKS_RECORD_LENGTH(ByteCount) \
                (sizeof(DNS_WKS_DATA) + (ByteCount-1))
    
    #define DNS_WINS_RECORD_LENGTH(IpCount) \
                (sizeof(DNS_WINS_DATA) + ((IpCount-1) * sizeof(IP_ADDRESS)))
    

Flags

  • DW
    [in] Flags used in the structure, in the form of a bit-wise DWORD.
  • S
    [in] Flags used in the structure, in the form of a DNS_RECORD_FLAGS structure.
  • dwTtl
    [in] Time to live, in seconds. A TTL of zero (0) indicates that the time to live is 10 minutes.
  • dwReserved
    [in] Reserved.
  • Data
    [in] DNS Resource Record data.

Remarks

When building a DNS_RECORD list as an input argument for the various DNS update routines found in the DNS API, all flags in the this structure should be set to zero.

Requirements

Header

windns.h

See Also

Reference

DNS Structures
DnsQuery
DnsReplaceRecordSetW