⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windns.pas

📁 详细Windows API大全有关知识以及相关问题
💻 PAS
📖 第 1 页 / 共 4 页
字号:
  DNS_TYPE_HINFO = $000d; // 13
  {$EXTERNALSYM DNS_TYPE_HINFO}
  DNS_TYPE_MINFO = $000e; // 14
  {$EXTERNALSYM DNS_TYPE_MINFO}
  DNS_TYPE_MX    = $000f; // 15
  {$EXTERNALSYM DNS_TYPE_MX}
  DNS_TYPE_TEXT  = $0010; // 16
  {$EXTERNALSYM DNS_TYPE_TEXT}

//  RFC 1183

  DNS_TYPE_RP    = $0011; // 17
  {$EXTERNALSYM DNS_TYPE_RP}
  DNS_TYPE_AFSDB = $0012; // 18
  {$EXTERNALSYM DNS_TYPE_AFSDB}
  DNS_TYPE_X25   = $0013; // 19
  {$EXTERNALSYM DNS_TYPE_X25}
  DNS_TYPE_ISDN  = $0014; // 20
  {$EXTERNALSYM DNS_TYPE_ISDN}
  DNS_TYPE_RT    = $0015; // 21
  {$EXTERNALSYM DNS_TYPE_RT}

//  RFC 1348

  DNS_TYPE_NSAP    = $0016; // 22
  {$EXTERNALSYM DNS_TYPE_NSAP}
  DNS_TYPE_NSAPPTR = $0017; // 23
  {$EXTERNALSYM DNS_TYPE_NSAPPTR}

//  RFC 2065    (DNS security)

  DNS_TYPE_SIG = $0018; // 24
  {$EXTERNALSYM DNS_TYPE_SIG}
  DNS_TYPE_KEY = $0019; // 25
  {$EXTERNALSYM DNS_TYPE_KEY}

//  RFC 1664    (X.400 mail)

  DNS_TYPE_PX = $001a; // 26
  {$EXTERNALSYM DNS_TYPE_PX}

//  RFC 1712    (Geographic position)

  DNS_TYPE_GPOS = $001b; // 27
  {$EXTERNALSYM DNS_TYPE_GPOS}

//  RFC 1886    (IPv6 Address)

  DNS_TYPE_AAAA = $001c; // 28
  {$EXTERNALSYM DNS_TYPE_AAAA}

//  RFC 1876    (Geographic location)

  DNS_TYPE_LOC = $001d; // 29
  {$EXTERNALSYM DNS_TYPE_LOC}

//  RFC 2065    (Secure negative response)

  DNS_TYPE_NXT = $001e; // 30
  {$EXTERNALSYM DNS_TYPE_NXT}

//  RFC 2052    (Service location)

  DNS_TYPE_SRV = $0021; // 33
  {$EXTERNALSYM DNS_TYPE_SRV}

//  ATM Standard something-or-another

  DNS_TYPE_ATMA = $0022; // 34
  {$EXTERNALSYM DNS_TYPE_ATMA}

//
//  Query only types (1035, 1995)
//

  DNS_TYPE_TKEY  = $00f9; // 249
  {$EXTERNALSYM DNS_TYPE_TKEY}
  DNS_TYPE_TSIG  = $00fa; // 250
  {$EXTERNALSYM DNS_TYPE_TSIG}
  DNS_TYPE_IXFR  = $00fb; // 251
  {$EXTERNALSYM DNS_TYPE_IXFR}
  DNS_TYPE_AXFR  = $00fc; // 252
  {$EXTERNALSYM DNS_TYPE_AXFR}
  DNS_TYPE_MAILB = $00fd; // 253
  {$EXTERNALSYM DNS_TYPE_MAILB}
  DNS_TYPE_MAILA = $00fe; // 254
  {$EXTERNALSYM DNS_TYPE_MAILA}
  DNS_TYPE_ALL   = $00ff; // 255
  {$EXTERNALSYM DNS_TYPE_ALL}
  DNS_TYPE_ANY   = $00ff; // 255
  {$EXTERNALSYM DNS_TYPE_ANY}

//
//  Temp Microsoft types -- use until get IANA approval for real type
//

  DNS_TYPE_WINS   = $ff01; // 64K - 255
  {$EXTERNALSYM DNS_TYPE_WINS}
  DNS_TYPE_WINSR  = $ff02; // 64K - 254
  {$EXTERNALSYM DNS_TYPE_WINSR}
  DNS_TYPE_NBSTAT = (DNS_TYPE_WINSR);
  {$EXTERNALSYM DNS_TYPE_NBSTAT}


//
//  DNS Record Types -- Net Byte Order
//

  DNS_RTYPE_A     = $0100; // 1
  {$EXTERNALSYM DNS_RTYPE_A}
  DNS_RTYPE_NS    = $0200; // 2
  {$EXTERNALSYM DNS_RTYPE_NS}
  DNS_RTYPE_MD    = $0300; // 3
  {$EXTERNALSYM DNS_RTYPE_MD}
  DNS_RTYPE_MF    = $0400; // 4
  {$EXTERNALSYM DNS_RTYPE_MF}
  DNS_RTYPE_CNAME = $0500; // 5
  {$EXTERNALSYM DNS_RTYPE_CNAME}
  DNS_RTYPE_SOA   = $0600; // 6
  {$EXTERNALSYM DNS_RTYPE_SOA}
  DNS_RTYPE_MB    = $0700; // 7
  {$EXTERNALSYM DNS_RTYPE_MB}
  DNS_RTYPE_MG    = $0800; // 8
  {$EXTERNALSYM DNS_RTYPE_MG}
  DNS_RTYPE_MR    = $0900; // 9
  {$EXTERNALSYM DNS_RTYPE_MR}
  DNS_RTYPE_NULL  = $0a00; // 10
  {$EXTERNALSYM DNS_RTYPE_NULL}
  DNS_RTYPE_WKS   = $0b00; // 11
  {$EXTERNALSYM DNS_RTYPE_WKS}
  DNS_RTYPE_PTR   = $0c00; // 12
  {$EXTERNALSYM DNS_RTYPE_PTR}
  DNS_RTYPE_HINFO = $0d00; // 13
  {$EXTERNALSYM DNS_RTYPE_HINFO}
  DNS_RTYPE_MINFO = $0e00; // 14
  {$EXTERNALSYM DNS_RTYPE_MINFO}
  DNS_RTYPE_MX    = $0f00; // 15
  {$EXTERNALSYM DNS_RTYPE_MX}
  DNS_RTYPE_TEXT  = $1000; // 16
  {$EXTERNALSYM DNS_RTYPE_TEXT}

//  RFC 1183

  DNS_RTYPE_RP    = $1100; // 17
  {$EXTERNALSYM DNS_RTYPE_RP}
  DNS_RTYPE_AFSDB = $1200; // 18
  {$EXTERNALSYM DNS_RTYPE_AFSDB}
  DNS_RTYPE_X25   = $1300; // 19
  {$EXTERNALSYM DNS_RTYPE_X25}
  DNS_RTYPE_ISDN  = $1400; // 20
  {$EXTERNALSYM DNS_RTYPE_ISDN}
  DNS_RTYPE_RT    = $1500; // 21
  {$EXTERNALSYM DNS_RTYPE_RT}

//  RFC 1348

  DNS_RTYPE_NSAP    = $1600; // 22
  {$EXTERNALSYM DNS_RTYPE_NSAP}
  DNS_RTYPE_NSAPPTR = $1700; // 23
  {$EXTERNALSYM DNS_RTYPE_NSAPPTR}

//  RFC 2065    (DNS security)

  DNS_RTYPE_SIG = $1800; // 24
  {$EXTERNALSYM DNS_RTYPE_SIG}
  DNS_RTYPE_KEY = $1900; // 25
  {$EXTERNALSYM DNS_RTYPE_KEY}

//  RFC 1664    (X.400 mail)

  DNS_RTYPE_PX = $1a00; // 26
  {$EXTERNALSYM DNS_RTYPE_PX}

//  RFC 1712    (Geographic position)

  DNS_RTYPE_GPOS = $1b00; // 27
  {$EXTERNALSYM DNS_RTYPE_GPOS}

//  RFC 1886    (IPv6 Address)

  DNS_RTYPE_AAAA = $1c00; // 28
  {$EXTERNALSYM DNS_RTYPE_AAAA}

//  RFC 1876    (Geographic location)

  DNS_RTYPE_LOC = $1d00; // 29
  {$EXTERNALSYM DNS_RTYPE_LOC}

//  RFC 2065    (Secure negative response)

  DNS_RTYPE_NXT = $1e00; // 30
  {$EXTERNALSYM DNS_RTYPE_NXT}

//  RFC 2052    (Service location)

  DNS_RTYPE_SRV = $2100; // 33
  {$EXTERNALSYM DNS_RTYPE_SRV}

//  ATM Standard something-or-another

  DNS_RTYPE_ATMA = $2200; // 34
  {$EXTERNALSYM DNS_RTYPE_ATMA}

//
//  Query only types (1035, 1995)
//

  DNS_RTYPE_TKEY  = $f900; // 249
  {$EXTERNALSYM DNS_RTYPE_TKEY}
  DNS_RTYPE_TSIG  = $fa00; // 250
  {$EXTERNALSYM DNS_RTYPE_TSIG}
  DNS_RTYPE_IXFR  = $fb00; // 251
  {$EXTERNALSYM DNS_RTYPE_IXFR}
  DNS_RTYPE_AXFR  = $fc00; // 252
  {$EXTERNALSYM DNS_RTYPE_AXFR}
  DNS_RTYPE_MAILB = $fd00; // 253
  {$EXTERNALSYM DNS_RTYPE_MAILB}
  DNS_RTYPE_MAILA = $fe00; // 254
  {$EXTERNALSYM DNS_RTYPE_MAILA}
  DNS_RTYPE_ALL   = $ff00; // 255
  {$EXTERNALSYM DNS_RTYPE_ALL}
  DNS_RTYPE_ANY   = $ff00; // 255
  {$EXTERNALSYM DNS_RTYPE_ANY}

//
//  Temp Microsoft types -- use until get IANA approval for real type
//

  DNS_RTYPE_WINS  = $01ff; // 64K - 255
  {$EXTERNALSYM DNS_RTYPE_WINS}
  DNS_RTYPE_WINSR = $02ff; // 64K - 254
  {$EXTERNALSYM DNS_RTYPE_WINSR}

//
//  Record type specific definitions
//

//
//  ATMA (ATM address type) formats
//
//  Define these directly for any environment (ex NT4)
//  without winsock2 ATM support (ws2atm.h)
//

{$IFNDEF ATMA_E164}
  DNS_ATMA_FORMAT_E164     = 1;
  {$EXTERNALSYM DNS_ATMA_FORMAT_E164}
  DNS_ATMA_FORMAT_AESA     = 2;
  {$EXTERNALSYM DNS_ATMA_FORMAT_AESA}
  DNS_ATMA_MAX_ADDR_LENGTH = (20);
  {$EXTERNALSYM DNS_ATMA_MAX_ADDR_LENGTH}
{$ELSE}
  DNS_ATMA_FORMAT_E164     = ATM_E164;
  {$EXTERNALSYM DNS_ATMA_FORMAT_E164}
  DNS_ATMA_FORMAT_AESA     = ATM_AESA;
  {$EXTERNALSYM DNS_ATMA_FORMAT_AESA}
  DNS_ATMA_MAX_ADDR_LENGTH = ATM_ADDR_SIZE;
  {$EXTERNALSYM DNS_ATMA_MAX_ADDR_LENGTH}
{$ENDIF}

  DNS_ATMA_AESA_ADDR_LENGTH  = (20);
  {$EXTERNALSYM DNS_ATMA_AESA_ADDR_LENGTH}
  DNS_ATMA_MAX_RECORD_LENGTH = (DNS_ATMA_MAX_ADDR_LENGTH+1);
  {$EXTERNALSYM DNS_ATMA_MAX_RECORD_LENGTH}

//
//  DNSSEC defs
//

//  DNSSEC algorithms

  DNSSEC_ALGORITHM_RSAMD5  = 1;
  {$EXTERNALSYM DNSSEC_ALGORITHM_RSAMD5}
  DNSSEC_ALGORITHM_NULL    = 253;
  {$EXTERNALSYM DNSSEC_ALGORITHM_NULL}
  DNSSEC_ALGORITHM_PRIVATE = 254;
  {$EXTERNALSYM DNSSEC_ALGORITHM_PRIVATE}

//  DNSSEC KEY protocol table

  DNSSEC_PROTOCOL_NONE   = 0;
  {$EXTERNALSYM DNSSEC_PROTOCOL_NONE}
  DNSSEC_PROTOCOL_TLS    = 1;
  {$EXTERNALSYM DNSSEC_PROTOCOL_TLS}
  DNSSEC_PROTOCOL_EMAIL  = 2;
  {$EXTERNALSYM DNSSEC_PROTOCOL_EMAIL}
  DNSSEC_PROTOCOL_DNSSEC = 3;
  {$EXTERNALSYM DNSSEC_PROTOCOL_DNSSEC}
  DNSSEC_PROTOCOL_IPSEC  = 4;
  {$EXTERNALSYM DNSSEC_PROTOCOL_IPSEC}

//  DNSSEC KEY flag field

  DNSSEC_KEY_FLAG_NOAUTH = $0001;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_NOAUTH}
  DNSSEC_KEY_FLAG_NOCONF = $0002;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_NOCONF}
  DNSSEC_KEY_FLAG_FLAG2  = $0004;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_FLAG2}
  DNSSEC_KEY_FLAG_EXTEND = $0008;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_EXTEND}
  DNSSEC_KEY_FLAG_FLAG4 = $0010;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_FLAG4}
  DNSSEC_KEY_FLAG_FLAG5 = $0020;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_FLAG5}

// bits 6,7 are name type

  DNSSEC_KEY_FLAG_USER  = $0000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_USER}
  DNSSEC_KEY_FLAG_ZONE  = $0040;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_ZONE}
  DNSSEC_KEY_FLAG_HOST  = $0080;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_HOST}
  DNSSEC_KEY_FLAG_NTPE3 = $00c0;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_NTPE3}

// bits 8-11 are reserved for future use

  DNSSEC_KEY_FLAG_FLAG8  = $0100;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_FLAG8}
  DNSSEC_KEY_FLAG_FLAG9  = $0200;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_FLAG9}
  DNSSEC_KEY_FLAG_FLAG10 = $0400;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_FLAG10}
  DNSSEC_KEY_FLAG_FLAG11 = $0800;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_FLAG11}

// bits 12-15 are sig field

  DNSSEC_KEY_FLAG_SIG0  = $0000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG0}
  DNSSEC_KEY_FLAG_SIG1  = $1000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG1}
  DNSSEC_KEY_FLAG_SIG2  = $2000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG2}
  DNSSEC_KEY_FLAG_SIG3  = $3000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG3}
  DNSSEC_KEY_FLAG_SIG4  = $4000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG4}
  DNSSEC_KEY_FLAG_SIG5  = $5000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG5}
  DNSSEC_KEY_FLAG_SIG6  = $6000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG6}
  DNSSEC_KEY_FLAG_SIG7  = $7000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG7}
  DNSSEC_KEY_FLAG_SIG8  = $8000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG8}
  DNSSEC_KEY_FLAG_SIG9  = $9000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG9}
  DNSSEC_KEY_FLAG_SIG10 = $a000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG10}
  DNSSEC_KEY_FLAG_SIG11 = $b000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG11}
  DNSSEC_KEY_FLAG_SIG12 = $c000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG12}
  DNSSEC_KEY_FLAG_SIG13 = $d000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG13}
  DNSSEC_KEY_FLAG_SIG14 = $e000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG14}
  DNSSEC_KEY_FLAG_SIG15 = $f000;
  {$EXTERNALSYM DNSSEC_KEY_FLAG_SIG15}

//
//  TKEY modes
//

  DNS_TKEY_MODE_SERVER_ASSIGN   = 1;
  {$EXTERNALSYM DNS_TKEY_MODE_SERVER_ASSIGN}
  DNS_TKEY_MODE_DIFFIE_HELLMAN  = 2;
  {$EXTERNALSYM DNS_TKEY_MODE_DIFFIE_HELLMAN}
  DNS_TKEY_MODE_GSS             = 3;
  {$EXTERNALSYM DNS_TKEY_MODE_GSS}
  DNS_TKEY_MODE_RESOLVER_ASSIGN = 4;
  {$EXTERNALSYM DNS_TKEY_MODE_RESOLVER_ASSIGN}

//
//  WINS + NBSTAT flag field
//

  DNS_WINS_FLAG_SCOPE = DWORD($80000000);
  {$EXTERNALSYM DNS_WINS_FLAG_SCOPE}
  DNS_WINS_FLAG_LOCAL = ($00010000);
  {$EXTERNALSYM DNS_WINS_FLAG_LOCAL}

//
//  Helpful checks
//

function IS_DWORD_ALIGNED(P: Pointer): BOOL;
{$EXTERNALSYM IS_DWORD_ALIGNED}

function IS_QWORD_ALIGNED(P: Pointer): BOOL;
{$EXTERNALSYM IS_QWORD_ALIGNED}

//
//  DNS config API
//

//
//  Types of DNS configuration info
//

type
  DNS_CONFIG_TYPE = (
    DnsConfigPrimaryDomainName_W,
    DnsConfigPrimaryDomainName_A,
    DnsConfigPrimaryDomainName_UTF8,
    DnsConfigAdapterDomainName_W,
    DnsConfigAdapterDomainName_A,
    DnsConfigAdapterDomainName_UTF8,
    DnsConfigDnsServerList,
    DnsConfigSearchList,
    DnsConfigAdapterInfo,
    DnsConfigPrimaryHostNameRegistrationEnabled,
    DnsConfigAdapterHostNameRegistrationEnabled,
    DnsConfigAddressRegistrationMaxCount);
  {$EXTERNALSYM DNS_CONFIG_TYPE}
  TDnsConfigType = DNS_CONFIG_TYPE;

//
//  Config API flags
//

//
//  Causes config info to be allocated with LocalAlloc()
//

const
  DNS_CONFIG_FLAG_ALLOC = $00000001;
  {$EXTERNALSYM DNS_CONFIG_FLAG_ALLOC}

function DnsQueryConfig(Config: DNS_CONFIG_TYPE; Flag: DWORD; pwsAdapterName: PWSTR;
  pReserved, pBuffer: PVOID; var pBufferLength: DWORD): DNS_STATUS; stdcall;
{$EXTERNALSYM DnsQueryConfig}

//
//  DNS resource record structure
//

//
//  Record data for specific types
//

type
  DNS_A_DATA = record
    IpAddress: IP4_ADDRESS;
  end;
  {$EXTERNALSYM DNS_A_DATA}
  PDNS_A_DATA = ^DNS_A_DATA;
  {$EXTERNALSYM PDNS_A_DATA}
  TDnsAData = DNS_A_DATA;
  PDnsAData = PDNS_A_DATA;

  DNS_PTR_DATA = record
    pNameHost: LPTSTR;
  end;
  {$EXTERNALSYM DNS_PTR_DATA}
  PDNS_PTR_DATA = ^DNS_PTR_DATA;
  {$EXTERNALSYM PDNS_PTR_DATA}
  TDnsPtrData = DNS_PTR_DATA;
  PDnsPtrData = PDNS_PTR_DATA;

  DNS_SOA_DATA = record
    pNamePrimaryServer: LPTSTR;
    pNameAdministrator: LPTSTR;
    dwSerialNo: DWORD;
    dwRefresh: DWORD;
    dwRetry: DWORD;
    dwExpire: DWORD;
    dwDefaultTtl: DWORD;
  end;
  {$EXTERNALSYM DNS_SOA_DATA}
  PDNS_SOA_DATA = ^DNS_SOA_DATA;
  {$EXTERNALSYM PDNS_SOA_DATA}
  TDnsSoaData = DNS_SOA_DATA;
  PDnsSoaData = PDNS_SOA_DATA;

  DNS_MINFO_DATA = record
    pNameMailbox: LPTSTR;
    pNameErrorsMailbox: LPTSTR;
  end;
  {$EXTERNALSYM DNS_MINFO_DATA}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -