netfw.h) (PFN_FWUPDATEDYNAMICKEYWORDADDRESS0 回调函数

服务中为使用输入 ID 更新动态关键字 (keyword) 地址而调用的入口点的函数指针类型。

注意

此免费函数的指针类型通过 NetFw.h发布,但不会发布静态链接库。 使用 LoadLibraryExW/GetProcAddress 模式调用此函数。

调用 GetProcAddress 时,将句柄传递给 firewallapi.dll 模块,并将 FWFreeDynamicKeywordAddressData0 作为 lpProcName 参数传递。

有关详细信息和代码示例,请参阅 防火墙动态关键字

语法

PFN_FWUPDATEDYNAMICKEYWORDADDRESS0 PfnFwupdatedynamickeywordaddress0;

DWORD PfnFwupdatedynamickeywordaddress0(
  GUID dynamicKeywordAddressId,
  PCWSTR updatedAddresses,
  BOOL append
)
{...}

参数

dynamicKeywordAddressId

类型: GUID

要更新的动态关键字 (keyword) 地址对象的 ID。

updatedAddresses

类型: PCWSTR

用于更新对象的 IP 地址、子网或范围的逗号分隔列表。

append

类型: BOOL

设置为 TRUE,updatedAddresses 将追加到对象的当前地址列表。 设置为 FALSE,updatedAddresses 将替换对象的当前地址列表。

返回值

类型: DWORD

如果函数成功 (对象) 成功更新,则返回 ERROR_SUCCESS。 否则,它将返回以下值之一。

返回值 说明
ERROR_ACCESS_DENIED 调用方没有对具有指定 ID 的对象进行操作的适当权限。 在 MDM 托管 的非 AutoResolve 对象上调用此 API 时,会发生此错误。
ERROR_INVALID_PARAMETER 常见错误条件包括:不存在具有指定 ID 的对象;地址的格式无效。

注解

如果 appendTRUE,则输入地址将追加到对象的当前地址列表。 如果输入参数是对象中已设置的地址的副本,则会将其丢弃,并返回 ERROR_SUCCESS

如果地址与动态关键字 (keyword) 地址的现有地址字段中的值完全等效,防火墙服务会将该地址视为重复地址。 重复值基于单个元素进行考虑,因此使用 IP 地址列表的更新可能只放弃了一部分重复输入。 例如,如果动态关键字 (keyword) 地址对象包含 127.0.0.0-127.0.0.255,则将放弃 或 127.0.0.0/24 的任何输入127.0.0.0-127.0.0.255。 但是,不会放弃诸如 的 127.0.0.0-127.0.0.40 输入,因为这是子集,而不是直接重复项。

如果 appendFALSE,则输入将覆盖对象的当前地址列表。

源自 MDM 的非 AutoResolve 对象将导致ERROR_ACCESS_DENIED

通过 API 或 PowerShell) 在本地 (创建的非 AutoResolve 对象通过此 API 进行更新。

可通过此 API 更新任何源的 AutoResolve 对象。

若要清除对象的地址,请为 updatedAddresses 值传入 NULL。

updatedAddresses 参数的有效格式是 IP 地址令牌的逗号分隔列表。 令牌可以是单个 IP 地址、范围或子网。 有效的令牌格式包括:

  • 有效的 IPv4 地址 (,例如 10.0.0.10)
  • 有效的 IPv6 地址 (,例如 2620:1ec:c11::200)
  • 格式为 <开始>地址结束<地址>的 IPv4 地址范围, (不包含空格,例如 10.0.0.0-10.0.0.255)
  • 格式为开始地址>-<结束地址>的 <IPv6 地址范围, (不包含空格,例如 2001:db8:abcd:12::-2001:db8:abcd:12:ffff:ffff:ffff:ffff)
  • 使用网络前缀表示法指定的有效 IPv4 子网, (例如 10.0.0.0/24)
  • 使用前缀长度表示法 (指定的有效 IPv6 子网,例如 2001:db8:abcd:0012::0/64)

要求

要求
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
目标平台 Windows
标头 netfw.h
DLL firewallapi.dll

另请参阅