setIpStatistics 函数 (iphlpapi.h)

SetIpStatistics 函数打开或关闭 IP 转发,并设置本地计算机的默认生存时间 (TTL) 值。

语法

IPHLPAPI_DLL_LINKAGE DWORD SetIpStatistics(
  [in] PMIB_IPSTATS pIpStats
);

parameters

[in] pIpStats

指向 MIB_IPSTATS 结构的指针。 调用方应将此结构的 dwForwardingdwDefaultTTL 成员设置为新值。 若要使其中一个成员保持其当前值,请使用MIB_USE_CURRENT_TTL或MIB_USE_CURRENT_FORWARDING。

返回值

如果函数成功,则返回值NO_ERROR。

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

返回代码 说明
ERROR_ACCESS_DENIED
拒绝访问。 此错误在 Windows Vista 和 Windows Server 2008 上返回,条件如下:用户在本地计算机上缺少所需的管理权限,或者应用程序未在增强的 shell 中运行,因为内置管理员 (RunAs 管理员) 。
ERROR_INVALID_PARAMETER
向该函数传递了无效参数。 如果在 pIpStats 参数中传递 NULL 指针,则返回此错误。 如果 pIpStats 参数指向的 MIB_IPSTATS 结构中的 dwForwarding 成员包含除 MIB_IP_NOT_FORWARDINGMIB_IP_FORWARDINGMIB_USE_CURRENT_FORWARDING 以外的值,也会返回此错误。
其他
使用 FormatMessage 获取返回错误的消息字符串。

注解

若要仅设置默认 TTL,调用方也可以使用 SetIpTTL 函数。

在 Windows Vista 及更高版本中, SetIpStatistics 函数只能由以 Administrators 组成员身份登录的用户调用。 如果 SetIpStatistics 由不是 Administrators 组成员的用户调用,则函数调用将失败并返回 ERROR_ACCESS_DENIED

SetIpStatistics 函数也可能因为 Windows Vista 及更高版本上的用户帐户控制 (UAC) 而失败。 如果包含此函数的应用程序由以管理员组成员身份登录(而不是内置管理员)的用户执行,则此调用将失败,除非应用程序已在清单文件中标记为 requestedExecutionLevel 设置为 requireAdministrator。 如果应用程序缺少此清单文件,则作为管理员组成员(而不是内置管理员)登录的用户必须在增强的 shell 中执行应用程序,因为内置管理员 (RunAs 管理员) 此函数才能成功。

注意 在 Windows NT 4.0 和 Windows 2000 及更高版本上,此函数执行特权操作。 若要成功执行此函数,调用方必须以 Administrators 组或 NetworkConfigurationOperators 组的成员身份登录。
 

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 iphlpapi.h
Library Iphlpapi.lib
DLL Iphlpapi.dll

另请参阅

IP 帮助程序函数参考

IP 帮助程序起始页

MIB_IPSTATS

SetIpStatisticsEx

SetIpTTL