SetIpStatistics 関数 (iphlpapi.h)

SetIpStatistics 関数は、IP 転送のオンとオフを切り替え、ローカル コンピューターの既定の time-to-live (TTL) 値を設定します。

構文

IPHLPAPI_DLL_LINKAGE DWORD SetIpStatistics(
  [in] PMIB_IPSTATS pIpStats
);

パラメーター

[in] pIpStats

MIB_IPSTATS構造体へのポインター。 呼び出し元は、この構造体の dwForwarding メンバーと dwDefaultTTL メンバーを新しい値に設定する必要があります。 メンバーの 1 つを現在の値のままにするには、MIB_USE_CURRENT_TTLまたはMIB_USE_CURRENT_FORWARDINGを使用します。

戻り値

関数が成功した場合、戻り値はNO_ERROR。

関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。

リターン コード 説明
ERROR_ACCESS_DENIED
アクセスが拒否されました。 このエラーは、Windows Vista および Windows Server 2008 で、次のようないくつかの条件で返されます。ユーザーがローカル コンピューターで必要な管理特権を持っていないか、アプリケーションが組み込みの管理者 (RunAs 管理者) として拡張シェルで実行されていません。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。 このエラーは、pIpStats パラメーターに NULL ポインターが渡された場合に返されます。 このエラーは、pIpStats パラメーターが指すMIB_IPSTATS構造体の dwForwarding メンバーに、MIB_IP_NOT_FORWARDINGMIB_IP_FORWARDING、またはMIB_USE_CURRENT_FORWARDING以外の値が含まれている場合にも返されます。
その他
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。

解説

既定の TTL のみを設定するために、呼び出し元は SetIpTTL 関数を使用することもできます。

Windows Vista 以降では、 SetIpStatistics 関数は、Administrators グループのメンバーとしてログオンしたユーザーのみが呼び出すことができます。 Administrators グループのメンバーではないユーザーが SetIpStatistics を呼び出すと、関数呼び出しは失敗し、 ERROR_ACCESS_DENIED が返されます。

SetIpStatistics 関数は、Windows Vista 以降のユーザー アカウント制御 (UAC) が原因で失敗する可能性もあります。 この関数を含むアプリケーションが、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしているユーザーによって実行された場合、 requestedExecutionLevel が requireAdministrator に設定されたマニフェスト ファイルでアプリケーションがマークされていない限り、この呼び出しは失敗します。 アプリケーションにこのマニフェスト ファイルがない場合、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしたユーザーは、この関数を成功させるために、組み込みの Administrator (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