DNS_INTERFACE_SETTINGS3 结构 (netioapi.h)

表示可以通过调用 SetInterfaceDnsSettings 函数在给定接口上配置的 DNS 设置,或通过调用 GetInterfaceDnsSettings 函数为给定接口检索的 DNS 设置。

语法

typedef struct _DNS_INTERFACE_SETTINGS3 {
  ULONG               Version;
  ULONG64             Flags;
  PWSTR               Domain;
  PWSTR               NameServer;
  PWSTR               SearchList;
  ULONG               RegistrationEnabled;
  ULONG               RegisterAdapterName;
  ULONG               EnableLLMNR;
  ULONG               QueryAdapterName;
  PWSTR               ProfileNameServer;
  ULONG               DisableUnconstrainedQueries;
  PWSTR               SupplementalSearchList;
  ULONG               cServerProperties;
  DNS_SERVER_PROPERTY *ServerProperties;
  ULONG               cProfileServerProperties;
  DNS_SERVER_PROPERTY *ProfileServerProperties;
} DNS_INTERFACE_SETTINGS3;

成员

Version

类型: ULONG

必须设置为 DNS_INTERFACE_SETTINGS_VERSION3

Flags

类型: ULONG64

以下选项的位图。

DNS_SETTING_IPV6 (0x0001) 。 仅为 IPv6 网络堆栈配置接口设置。 如果设置了此选项,则 NameServerProfileNameServer 成员中指定的任何 IP 地址都必须是 IPv6 地址。 默认情况下,此结构中指定的 DNS 接口设置仅应用于 IPv4 网络堆栈。

DNS_SETTING_NAMESERVER (0x0002) 。 通过 NameServer 成员在指定接口上配置静态适配器 DNS 服务器。

DNS_SETTING_SEARCHLIST (0x0004) 。 通过 SearchList 成员为给定适配器配置特定于连接的 DNS 后缀搜索列表。

DNS_SETTING_REGISTRATION_ENABLED (0x0008) 。 启用或禁用给定适配器的动态 DNS 注册。 默认情况下,这是系统启用的。

DNS_SETTING_DOMAIN (0x0020) 。 通过 成员为给定适配器配置特定于连接的 DNS 后缀。

DNS_SETTINGS_ENABLE_LLMNR (0x0080) 。 在指定的适配器上使用 LLMNR 和 mDNS 启用或禁用名称解析。 默认情况下,这是系统启用的。

DNS_SETTINGS_QUERY_ADAPTER_NAME (0x0100) 。 启用或禁用将适配器名称用作 DNS 查询的后缀。 默认情况下,这是系统启用的。

DNS_SETTING_PROFILE_NAMESERVER (0x0200) 。 通过 ProfileNameServer 成员在指定接口上配置静态配置文件 DNS 服务器。

DNS_SETTING_SUPPLEMENTAL_SEARCH_LIST (0x0800) 。 通过 SupplementalSearchList 成员为给定适配器配置特定于连接的 DNS 补充后缀搜索列表。

DNS_SETTING_DOH (0x1000) 。 通过 cServerProperties 和 ServerProperties 成员在指定适配器上配置 DNS-over-HTTPS 设置。 如果设置了此选项,则 NameServer 成员必须指向包含一系列空格或逗号分隔的 DNS 服务器的有效字符串。

DNS_SETTING_DOH_PROFILE (0x2000) 。 通过 cProfileServerProperties 和 ProfileServerProperties 成员在指定适配器上配置 配置文件 DNS-over-HTTPS 设置。 如果设置了此选项,则 ProfileNameServer 成员必须指向包含一系列空格或逗号分隔的 DNS 服务器的有效字符串。

Domain

类型: PWSTR

包含适配器域名的以 NULL 结尾的宽字符串。

NameServer

类型: PWSTR

以 NULL 结尾的宽字符串,包含一系列逗号或空格分隔的 DNS 服务器。 例如,L“1.1.1.1 8.8.8”或 L“1.1.1,8.8.8.8”。

如果 存在DNS_SETTING_IPV6 标志,则服务器必须是 IPv6 地址。 例如,L“2606:4700:4700::1001,2606:4700:4700::1111”。

SearchList

类型: PWSTR

以 NULL 结尾的宽字符串,包含一系列逗号或空格分隔的搜索名称。 例如,L“contoso1.com contoso2.com”或 L“contoso1.com,contoso2.com”。

RegistrationEnabled

类型: ULONG

如果为 TRUE ,则启用适配器动态注册; 如果为 FALSE ,则禁用它。

RegisterAdapterName

类型: ULONG

如果为 TRUE ,则启用适配器名称注册; 如果为 FALSE ,则禁用它。

EnableLLMNR

类型: ULONG

如果为 TRUE ,则为在给定接口上启用 mDNS 和 LLMNR; 如果为 FALSE ,则禁用它们。

QueryAdapterName

类型: ULONG

如果适配器名称应用作搜索后缀,则为 TRUE;否则为 FALSE

ProfileNameServer

类型: PWSTR

以 NULL 结尾的宽字符串,包含一系列逗号或空格分隔的 DNS 服务器。 例如,L“1.1.1.1 8.8.8”或 L“1.1.1,8.8.8.8”。

如果 存在DNS_SETTING_IPV6 标志,则服务器必须是 IPv6 地址。 例如,L“2606:4700:4700::1001,2606:4700:4700::1111”。

DisableUnconstrainedQueries

类型: ULONG

保留。

SupplementalSearchList

类型: PWSTR

以 NULL 结尾的宽字符串,包含一系列逗号或空格分隔的搜索名称。 例如,L“contoso1.com contoso2.com”或 L“contoso1.com,contoso2.com”。

cServerProperties

类型: ULONG

ServerProperties 成员中指定的服务器属性数。 如果此值等于 0,则“ServerProperties”成员必须为 NULL。

ServerProperties

类型: DNS_SERVER_PROPERTY*

包含 cServerProperties 元素的DNS_SERVER_PROPERTY结构的数组。 如果 cServerProperties 为 0,则此值必须为 NULL。

仅支持 DNS-over-HTTPS 属性,在 NameServer 成员中指定的每个服务器最多只能有 1 个属性。

DNS_SERVER_PROPERTY::Version 成员必须设置为 DNS_SERVER_PROPERTY_VERSION1:Type 必须设置为 DNS_SERVER_PROPERTY_TYPE::D nsServerDohProperty,Property.DohSettings 必须指向有效的 DNS_DOH_SERVER_SETTINGS 对象。

必须将 DNS_SERVER_PROPERTYServerIndex 成员设置为 NameServer 成员中相应 DNS 服务器的索引。

例如,如果 NameServer 成员设置为 L“1.1.1.1、8.8.8、9.9.9.9”,则服务器 1.1.1.1 的属性会将 ServerIndex 成员设置为 0。 同样,8.8.8.8 需要 将 ServerIndex 设置为 1,而 9.9.9.9 需要 将 ServerIndex 成员设置为 2。

cProfileServerProperties

类型: ULONG

在 ProfileServerProperties 成员中指定的服务器属性数。 如果此值等于 0,则 ProfileServerProperties 成员必须为 NULL。

ProfileServerProperties

类型: DNS_SERVER_PROPERTY*

包含 cProfileServerProperties 元素的DNS_SERVER_PROPERTY结构的数组。 如果 cProfileServerProperties 为 0,则此值必须为 NULL。

仅支持 DNS-over-HTTPS 属性,在 ProfileNameServer 成员中指定的每个服务器最多只能有 1 个属性。

DNS_SERVER_PROPERTY::Version 成员必须设置为 DNS_SERVER_PROPERTY_VERSION1::Type 必须设置为 DNS_SERVER_PROPERTY_TYPE::D nsServerDohProperty,Property.DohSettings 必须指向有效的 DNS_DOH_SERVER_SETTINGS 对象。

必须将 DNS_SERVER_PROPERTYServerIndex 成员设置为 ProfileNameServer 成员中相应 DNS 服务器的索引。

例如,如果 ProfileNameServer 成员设置为 L“1.1.1.1、8.8.8、9.9.9.9”,则服务器 1.1.1.1 的属性会将 ServerIndex 成员设置为 0。 同样,8.8.8.8 需要 将 ServerIndex 设置为 1,而 9.9.9.9 需要 将 ServerIndex 成员设置为 2。

要求

要求
最低受支持的客户端 Windows 10内部版本 19645
最低受支持的服务器 Windows 10内部版本 19645
标头 netioapi.h (包括 Iphlpapi.h)

另请参阅