DNS_RECORDA结构(windns.h)

DNS_RECORD 结构存储 DNS 资源记录(RR)。

语法

typedef struct _DnsRecordA {
  struct _DnsRecordA *pNext;
  PSTR               pName;
  WORD               wType;
  WORD               wDataLength;
  union {
    DWORD            DW;
    DNS_RECORD_FLAGS S;
  } Flags;
  DWORD              dwTtl;
  DWORD              dwReserved;
  union {
    DNS_A_DATA          A;
    DNS_SOA_DATAA       SOA;
    DNS_SOA_DATAA       Soa;
    DNS_PTR_DATAA       PTR;
    DNS_PTR_DATAA       Ptr;
    DNS_PTR_DATAA       NS;
    DNS_PTR_DATAA       Ns;
    DNS_PTR_DATAA       CNAME;
    DNS_PTR_DATAA       Cname;
    DNS_PTR_DATAA       DNAME;
    DNS_PTR_DATAA       Dname;
    DNS_PTR_DATAA       MB;
    DNS_PTR_DATAA       Mb;
    DNS_PTR_DATAA       MD;
    DNS_PTR_DATAA       Md;
    DNS_PTR_DATAA       MF;
    DNS_PTR_DATAA       Mf;
    DNS_PTR_DATAA       MG;
    DNS_PTR_DATAA       Mg;
    DNS_PTR_DATAA       MR;
    DNS_PTR_DATAA       Mr;
    DNS_MINFO_DATAA     MINFO;
    DNS_MINFO_DATAA     Minfo;
    DNS_MINFO_DATAA     RP;
    DNS_MINFO_DATAA     Rp;
    DNS_MX_DATAA        MX;
    DNS_MX_DATAA        Mx;
    DNS_MX_DATAA        AFSDB;
    DNS_MX_DATAA        Afsdb;
    DNS_MX_DATAA        RT;
    DNS_MX_DATAA        Rt;
    DNS_TXT_DATAA       HINFO;
    DNS_TXT_DATAA       Hinfo;
    DNS_TXT_DATAA       ISDN;
    DNS_TXT_DATAA       Isdn;
    DNS_TXT_DATAA       TXT;
    DNS_TXT_DATAA       Txt;
    DNS_TXT_DATAA       X25;
    DNS_NULL_DATA       Null;
    DNS_WKS_DATA        WKS;
    DNS_WKS_DATA        Wks;
    DNS_AAAA_DATA       AAAA;
    DNS_KEY_DATA        KEY;
    DNS_KEY_DATA        Key;
    DNS_SIG_DATAA       SIG;
    DNS_SIG_DATAA       Sig;
    DNS_ATMA_DATA       ATMA;
    DNS_ATMA_DATA       Atma;
    DNS_NXT_DATAA       NXT;
    DNS_NXT_DATAA       Nxt;
    DNS_SRV_DATAA       SRV;
    DNS_SRV_DATAA       Srv;
    DNS_NAPTR_DATAA     NAPTR;
    DNS_NAPTR_DATAA     Naptr;
    DNS_OPT_DATA        OPT;
    DNS_OPT_DATA        Opt;
    DNS_DS_DATA         DS;
    DNS_DS_DATA         Ds;
    DNS_RRSIG_DATAA     RRSIG;
    DNS_RRSIG_DATAA     Rrsig;
    DNS_NSEC_DATAA      NSEC;
    DNS_NSEC_DATAA      Nsec;
    DNS_DNSKEY_DATA     DNSKEY;
    DNS_DNSKEY_DATA     Dnskey;
    DNS_TKEY_DATAA      TKEY;
    DNS_TKEY_DATAA      Tkey;
    DNS_TSIG_DATAA      TSIG;
    DNS_TSIG_DATAA      Tsig;
    DNS_WINS_DATA       WINS;
    DNS_WINS_DATA       Wins;
    DNS_WINSR_DATAA     WINSR;
    DNS_WINSR_DATAA     WinsR;
    DNS_WINSR_DATAA     NBSTAT;
    DNS_WINSR_DATAA     Nbstat;
    DNS_DHCID_DATA      DHCID;
    DNS_NSEC3_DATA      NSEC3;
    DNS_NSEC3_DATA      Nsec3;
    DNS_NSEC3PARAM_DATA NSEC3PARAM;
    DNS_NSEC3PARAM_DATA Nsec3Param;
    DNS_TLSA_DATA       TLSA;
    DNS_TLSA_DATA       Tlsa;
    DNS_SVCB_DATA       SVCB;
    DNS_SVCB_DATA       Svcb;
    DNS_UNKNOWN_DATA    UNKNOWN;
    DNS_UNKNOWN_DATA    Unknown;
    PBYTE               pDataPtr;
  } Data;
} DNS_RECORDA, *PDNS_RECORDA;

成员

pNext

指向下一个 DNS_RECORD 结构的指针。

pName

指向表示记录集域名的字符串的指针。 这必须采用与调用的函数对应的字符串格式,例如 ANSI、Unicode 或 UTF8。

wType

一个表示 RR DNS 记录类型的值。 wType 确定 数据的格式。 例如,如果 wType 的值 DNS_TYPE_A,则 数据 的数据类型 DNS_A_DATA

wDataLength

数据的长度(以字节为单位)。 对于固定长度数据类型,此值是相应数据类型的大小,例如 sizeof(DNS_A_DATA)。 对于非固定数据类型,请使用以下宏之一来确定数据的长度:

C++
#include <windows.h>

#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))) #define DNS_TEXT_RECORD_LENGTH(StringCount) (sizeof(DWORD) + ((StringCount) * sizeof(PCHAR)))

Flags

Flags.DW

一个值,该值包含 DNS 记录标志的位图

Flags.S

一组标志,格式为 DNS_RECORD_FLAGS 结构。

dwTtl

DNS RR 的生存时间值 (TTL),以秒为单位。

dwReserved

保留。 请勿使用。

Data

DNS RR 数据类型由 wType 确定,是以下成员之一:

SOA、Soa

RR 数据类型 DNS_SOA_DATAwType 的值 DNS_TYPE_SOA

PTR、Ptr、NS、Ns、CNAME、Cname、DNAME、Dname、MB、Mb、MD、Md、MF、Mf、MG、Mg、MR、Mr

RR 数据类型 DNS_PTR_DATAwType 的值 DNS_TYPE_PTR

MINFO、Minfo、RP、Rp

RR 数据类型 DNS_MINFO_DATAwType 的值是 DNS_TYPE_MINFO

MX、Mx、AFSDB、Afsdb、RT、Rt

RR 数据类型 DNS_MX_DATAwType 的值 DNS_TYPE_MX

HINFO、Hinfo、ISDN、Isdn、TXT、Txt、X25

RR 数据类型 DNS_TXT_DATAwType 的值是 DNS_TYPE_TEXT

WKS、Wks

RR 数据类型 DNS_WKS_DATAwType 的值 DNS_TYPE_WKS

KEY、Key

RR 数据类型 DNS_KEY_DATAwType 的值 DNS_TYPE_KEY

SIG、Sig

RR 数据类型 DNS_SIG_DATAwType 的值是 DNS_TYPE_SIG

ATMA、Atma

RR 数据类型 DNS_ATMA_DATAwType 的值是 DNS_TYPE_ATMA

NXT、Nxt

RR 数据类型 DNS_NXT_DATAwType 的值 DNS_TYPE_NXT

SRV、Srv

RR 数据类型 DNS_SRV_DATAwType 的值 DNS_TYPE_SRV

NAPTR、Naptr

RR 数据类型 DNS_NAPTR_DATAwType 的值是 DNS_TYPE_NAPTR

OPT、Opt

Windows 7 或更高版本:RR 数据类型 DNS_OPT_DATAwType 的值 DNS_TYPE_OPT

DS、Ds

Windows 7 或更高版本:RR 数据类型 DNS_DS_DATAwType 的值是 DNS_TYPE_DS

RRSIG、Rrsig

Windows 7 或更高版本:RR 数据类型 DNS_RRSIG_DATAwType 的值 DNS_TYPE_RRSIG

NSEC、Nsec

Windows 7 或更高版本:RR 数据类型 DNS_NSEC_DATAwType 的值 DNS_TYPE_NSEC

DNSKEY、Dnskey

Windows 7 或更高版本:RR 数据类型 DNS_DNSKEY_DATAwType 的值 DNS_TYPE_DNSKEY

TKEY、Tkey

RR 数据类型 DNS_TKEY_DATAwType 的值 DNS_TYPE_TKEY

TSIG、Tsig

RR 数据类型 DNS_TSIG_DATAwType 的值 DNS_TYPE_TSIG

WINS、Wins

RR 数据类型 DNS_WINS_DATAwType 的值 DNS_TYPE_WINS

WINSR、WinsR、NBSTAT、Nbstat

RR 数据类型 DNS_WINSR_DATAwType 的值 DNS_TYPE_WINSR

Data.A

RR 数据类型 DNS_A_DATAwType 的值是 DNS_TYPE_A

Data.SOA

Data.Soa

Data.PTR

Data.Ptr

Data.NS

Data.Ns

Data.CNAME

Data.Cname

Data.DNAME

Data.Dname

Data.MB

Data.Mb

Data.MD

Data.Md

Data.MF

Data.Mf

Data.MG

Data.Mg

Data.MR

Data.Mr

Data.MINFO

Data.Minfo

Data.RP

Data.Rp

Data.MX

Data.Mx

Data.AFSDB

Data.Afsdb

Data.RT

Data.Rt

Data.HINFO

Data.Hinfo

Data.ISDN

Data.Isdn

Data.TXT

Data.Txt

Data.X25

Data.Null

RR 数据类型 DNS_NULL_DATAwType 的值 DNS_TYPE_NULL

Data.WKS

Data.Wks

Data.AAAA

RR 数据类型 DNS_AAAA_DATAwType 的值 DNS_TYPE_AAAA

Data.KEY

Data.Key

Data.SIG

Data.Sig

Data.ATMA

Data.Atma

Data.NXT

Data.Nxt

Data.SRV

Data.Srv

Data.NAPTR

Data.Naptr

Data.OPT

Data.Opt

Data.DS

Data.Ds

Data.RRSIG

Data.Rrsig

Data.NSEC

Data.Nsec

Data.DNSKEY

Data.Dnskey

Data.TKEY

Data.Tkey

Data.TSIG

Data.Tsig

Data.WINS

Data.Wins

Data.WINSR

Data.WinsR

Data.NBSTAT

Data.Nbstat

Data.DHCID

Windows 7 或更高版本:RR 数据类型 DNS_DHCID_DATAwType 的值是 DNS_TYPE_DHCID

Data.NSEC3

Data.Nsec3

Data.NSEC3PARAM

Data.Nsec3Param

Data.TLSA

Data.Tlsa

Data.SVCB

Data.Svcb

Data.UNKNOWN

Data.Unknown

Data.pDataPtr

言论

DNS_RECORD 列表生成为 DNS API 中找到的各种 DNS 更新例程的输入参数时,DNS_RECORD 结构中的所有标志都应设置为零。

注意

windns.h 标头将DNS_RECORD定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
标头 windns.h

另请参阅

DNS_AAAA_DATA

DNS_ATMA_DATA

DNS_A_DATA

DNS_DHCID_DATA

DNS_DNSKEY_DATA

DNS_DS_DATA

DNS_KEY_DATA

DNS_LOC_DATA

DNS_MINFO_DATA

DNS_MX_DATA

DNS_NAPTR_DATA

DNS_NSEC_DATA

DNS_NULL_DATA

DNS_NXT_DATA

DNS_OPT_DATA

DNS_PTR_DATA

DNS_RRSIG_DATA

DNS_SIG_DATA

DNS_SOA_DATA

DNS_SRV_DATA

DNS_TKEY_DATA

DNS_TSIG_DATA

DNS_TXT_DATA

DNS_WINSR_DATA

DNS_WINS_DATA

DNS_WKS_DATA

DnsExtractRecordsFromMessage

DnsModifyRecordsInSet

DnsQuery

DnsRecordCompare

DnsRecordCopyEx

DnsRecordSetCompare

DnsRecordSetDetach

DnsReplaceRecordSet