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 网络堆栈配置接口设置。 如果设置了此选项,则 NameServer 或 ProfileNameServer 成员中指定的任何 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_PROPERTY 的 ServerIndex 成员设置为 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_PROPERTY 的 ServerIndex 成员设置为 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) |