INetFwMgr::IsIcmpTypeAllowed 方法 (netfw.h)

[Windows 防火墙 API 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 对于 Windows Vista 及更高版本,建议使用 具有高级安全 API 的 Windows 防火墙 。]

确定是否允许指定的 ICMP 类型。

语法

HRESULT IsIcmpTypeAllowed(
  [in]  NET_FW_IP_VERSION ipVersion,
  [in]  BSTR              localAddress,
  [in]  BYTE              type,
  [out] VARIANT           *allowed,
  [out] VARIANT           *restricted
);

参数

[in] ipVersion

流量的 IP 版本。 这不能 NET_FW_IP_VERSION_ANY

流量的 IP 版本。 这不能 NET_FW_IP_VERSION_ANY

[in] localAddress

一个点十进制 IPv4 地址或 IPv6 十六进制地址,用于指定流量的本地地址。 通常,这是传递给绑定的地址。 如果 localAddressNULL,则该函数确定是否允许所有接口使用端口。

[in] type

ICMP 类型。 有关可能的 ICMP 类型的列表,请参阅 ICMP 类型编号

[out] allowed

指示值 VARIANT_TRUE 或 VARIANT_FALSE是否允许端口用于至少一些本地接口和远程地址。

[out] restricted

指示值 VARIANT_TRUE 或 VARIANT_FALSE此端口是否阻止某些本地接口或远程地址。 例如,如果端口仅限于本地子网。

返回值

C++

返回代码 说明
E_ACCESSDENIED
由于权限问题,操作已停止。
E_INVALIDARG
方法失败,因为参数无效。
E_OUTOFMEMORY
方法无法分配所需的内存。
E_POINTER
方法失败,因为指针无效。
 

VB

如果该方法成功,则返回值 S_OK

如果方法失败,则返回值为以下错误代码之一。

返回代码 说明
E_ACCESSDENIED
由于权限问题,操作已停止。
E_INVALIDARG
方法失败,因为参数无效。
E_OUTOFMEMORY
方法无法分配所需的内存。
E_POINTER
方法失败,因为指针无效。

注解

通常建议使用 INetFwPolicy2::IsRuleGroupEnabled 方法代替此方法。

要求

要求
最低受支持的客户端 Windows Vista、Windows XP SP2 [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 SP1 [仅限桌面应用]
目标平台 Windows
标头 netfw.h
DLL FirewallAPI.dll;使用 SP2 在 Windows XP 上 Hnetcfg.dll

另请参阅

INetFwMgr

NET_FW_IP_VERSION