SetIpStatisticsEx 関数 (iphlpapi.h)

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

構文

IPHLPAPI_DLL_LINKAGE ULONG SetIpStatisticsEx(
  [in] PMIB_IPSTATS Statistics,
       ULONG        Family
);

パラメーター

[in] Statistics

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

Family

転送と TTL を設定するアドレス ファミリ。

アドレス ファミリに使用できる値は、 Winsock2.h ヘッダー ファイルに一覧表示されます。 AF_ アドレス ファミリ定数とPF_ プロトコル ファミリ定数の値は同一であるため ( たとえば、AF_INETPF_INET)、どちらの定数も使用できます。

Windows Vista 以降用にリリースされた Windows SDK では、ヘッダー ファイルのorganizationが変更され、このメンバーの使用可能な値は Ws2def.h ヘッダー ファイルで定義されます。 Ws2def.h ヘッダー ファイルは Winsock2.h に自動的に含まれるので、直接使用しないでください。

現在サポートされている値は AF_INETされ、 AF_INET6

説明
AF_INET
2
インターネット プロトコル バージョン 4 (IPv4) アドレス ファミリ。 このパラメーターを指定すると、この関数は IPv4 エントリの転送オプションと TTL オプションを設定します。
AF_INET6
23
インターネット プロトコル バージョン 6 (IPv6) アドレス ファミリ。 このパラメーターを指定すると、この関数は IPv6 エントリの転送オプションと TTL オプションを設定します。

戻り値

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

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

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

解説

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

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

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

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー iphlpapi.h
Library Iphlpapi.lib
[DLL] Iphlpapi.dll

関連項目

IP ヘルパー関数リファレンス

IP ヘルパーの開始ページ

MIB_IPSTATS

SetIpStatistics

SetIpTTL