SetPerTcp6ConnectionEStats 関数 (iphlpapi.h)

SetPerTcp6ConnectionEStats 関数は、IPv6 TCP 接続の読み取り/書き込み情報の値を設定します。 この関数は、IPv6 TCP 接続の拡張統計を有効または無効にするために使用されます。

構文

IPHLPAPI_DLL_LINKAGE ULONG SetPerTcp6ConnectionEStats(
  PMIB_TCP6ROW    Row,
  TCP_ESTATS_TYPE EstatsType,
  PUCHAR          Rw,
  ULONG           RwVersion,
  ULONG           RwSize,
  ULONG           Offset
);

パラメーター

Row

IPv6 TCP 接続の MIB_TCP6ROW 構造体へのポインター。

EstatsType

設定する TCP の拡張統計の種類。 このパラメーターは、 Rw パラメーターで予期される情報のデータと形式を決定します。

このパラメーターには、Tcpestats.h ヘッダー ファイルで定義されているTCP_ESTATS_TYPE列挙型の値のいずれかを指定できます。

意味
TcpConnectionEstatsData
この値は、TCP 接続の拡張データ転送情報を指定します。

この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_DATA_RW_v0 構造体を指している必要があります。

TcpConnectionEstatsSndCong
この値は、TCP 接続の送信者の輻輳を指定します。

この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_SND_CONG_RW_v0 構造体を指している必要があります。

TcpConnectionEstatsPath
この値は、TCP 接続の拡張パス測定情報を指定します。

この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_PATH_RW_v0 構造体を指している必要があります。

TcpConnectionEstatsSendBuff
この値は、TCP 接続の拡張出力キュー情報を指定します。

この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_SEND_BUFF_RW_v0 構造体を指している必要があります。

TcpConnectionEstatsRec
この値は、TCP 接続の拡張ローカル 受信側情報を指定します。

この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_REC_RW_v0 構造体を指している必要があります。

TcpConnectionEstatsObsRec
この値は、TCP 接続の拡張リモート・レシーバー情報を指定します。

この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_OBS_REC_RW_v0 構造体を指している必要があります。

TcpConnectionEstatsBandwidth
この値は、帯域幅に対する TCP 接続の帯域幅推定統計を指定します。

この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_BANDWIDTH_RW_v0 構造体を指している必要があります。

TcpConnectionEstatsFineRtt
この値は、TCP 接続の詳細なラウンド トリップ時間 (RTT) 推定統計を指定します。

この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_FINE_RTT_RW_v0 構造体を指している必要があります。

Rw

設定する読み取り/書き込み情報を含むバッファーへのポインター。 バッファーには、各メンバーの更新方法を指定する構造体メンバーごとに 、TCP_BOOLEAN_OPTIONAL 列挙の値が含まれている必要があります。

RwVersion

設定する読み取り/書き込み情報のバージョン。 このパラメーターは、Windows Vista、Windows Server 2008、Windows 7 の場合は 0 に設定する必要があります。

RwSize

Rw パラメーターが指すバッファーのサイズ (バイト単位)。

Offset

設定する Rw パラメーターが指す構造体のメンバーへのオフセット (バイト単位)。 このパラメーターは現在使用されておらず、0 に設定する必要があります。

戻り値

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

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

リターン コード 説明
ERROR_ACCESS_DENIED
アクセスが拒否されました。 このエラーは、次のようないくつかの条件で返されます。ユーザーがローカル コンピューターで必要な管理特権を持っていないか、アプリケーションが組み込みの管理者 (RunAs 管理者) として拡張シェルで実行されていません。
ERROR_INVALID_PARAMETER
パラメーターが正しくありません。 Row パラメーターが NULL ポインターの場合、このエラーが返されます。
ERROR_INVALID_USER_BUFFER
指定されたユーザー バッファーは、要求された操作に対して無効です。 Row パラメーターが NULL ポインターで、RwSize パラメーターが 0 以外の場合、このエラーが返されます。
ERROR_NOT_FOUND
この要求されたエントリが見つかりませんでした。 Row パラメーターで指定された TCP 接続が見つからなかった場合、このエラーが返されます。
ERROR_NOT_SUPPORTED
要求はサポートされていません。 このエラーは、 RwVersion または Offset パラメーターが 0 に設定されていない場合に返されます。
その他
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。

注釈

SetPerTcp6ConnectionEStats 関数は、Windows Vista 以降で定義されています。

SetPerTcp6ConnectionEStats 関数は、Row パラメーターで渡された IPv6 TCP 接続の拡張統計を有効または無効にするために使用されます。 TCP 接続の拡張統計は、既定では無効になっています。

SetPerTcp6ConnectionEStats 関数は、IPv6 TCP 接続の拡張統計の読み取り/書き込み情報のメンバーの値を設定するために使用されます。 設定する構造体の型と形式は、 EstatsType パラメーターで指定します。 Rw パラメーターには、渡される構造体へのポインターが含まれています。 この構造体で設定するメンバーは、 Offset パラメーターによって指定されます。 Rw パラメーターによって指される構造体内のすべてのメンバーを指定する必要があります。

現在サポートされている TCP 接続統計の唯一のバージョンは、バージョン 0 です。 そのため、SetPerTcp6ConnectionEStats に渡される RwVersion パラメーターは 0 に設定する必要があります。

この関数で渡される Rw パラメーターが指す構造体は、 EstatsType パラメーターで渡される列挙値によって異なります。 次の表は、可能な EstatsType パラメーターの型ごとに Rw パラメーターで渡す必要がある構造体の型を示しています。

EstatsType Rw が指す構造体
TcpConnectionEstatsData TCP_ESTATS_DATA_RW_v0
TcpConnectionEstatsSndCong TCP_ESTATS_SND_CONG_RW_v0
TcpConnectionEstatsPath TCP_ESTATS_PATH_RW_v0
TcpConnectionEstatsSendBuff TCP_ESTATS_SEND_BUFF_RW_v0
TcpConnectionEstatsRec TCP_ESTATS_REC_RW_v0
TcpConnectionEstatsObsRec TCP_ESTATS_OBS_REC_RW_v0
TcpConnectionEstatsBandwidth TCP_ESTATS_BANDWIDTH_RW_v0
TcpConnectionEstatsFineRtt TCP_ESTATS_FINE_RTT_RW_v0
 

Offset パラメーターは現在使用されていません。 Rw パラメーターが指す可能性のある構造体はすべて、TCP_ESTATS_BANDWIDTH_RW_v0構造体を除き、1 つのメンバーを持ちます。 EstatsType パラメーターが TcpConnectionEstatsBandwidth に設定されている場合、Rw パラメーターが指すTCP_ESTATS_BANDWIDTH_RW_v0構造体には、SetPerTcp6ConnectionEStats 関数の 1 回の呼び出しで両方の構造体メンバーが優先値に設定されている必要があります。

RwSize パラメーターが 0 に設定されている場合、SetPerTcp6ConnectionEStats 関数はNO_ERRORを返し、拡張統計の状態を変更しません。

GetTcp6Table 関数は、ローカル コンピューター上の IPv6 TCP 接続テーブルを取得するために使用されます。 この関数は、 MIB_TCP6ROW エントリの配列を含む MIB_TCP6TABLE構造体を 返します。 SetPerTcp6ConnectionEStats 関数に渡される Row パラメーターは、既存の IPv6 TCP 接続のエントリである必要があります。

IPv6 の TCP 接続で拡張統計が有効になると、アプリケーションは GetPerTcp6ConnectionEStats 関数を呼び出して、TCP 接続の拡張統計を取得します。

GetPerTcp6ConnectionEStats 関数は、TCP を使用してネットワークとアプリケーションの両方のパフォーマンスの問題を診断するように設計されています。 ネットワーク ベースのアプリケーションのパフォーマンスが低下している場合、TCP はボトルネックが送信者、受信側、またはネットワーク自体にあるかどうかを判断できます。 ボトルネックがネットワーク内にある場合、TCP はその性質に関する特定の情報を提供できます。

IPv4 接続の拡張 TCP 統計については、 GetPerTcpConnectionEStats 関数と SetPerTcpConnectionEStats 関数を参照してください。

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

要件

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

こちらもご覧ください

GetPerTcp6ConnectionEStats

GetPerTcpConnectionEStats

GetTcp6Table

MIB_TCP6ROW

MIB_TCP6TABLE

SetPerTcpConnectionEStats

TCP_BOOLEAN_OPTIONAL

TCP_ESTATS_BANDWIDTH_RW_v0

TCP_ESTATS_DATA_RW_v0

TCP_ESTATS_FINE_RTT_RW_v0

TCP_ESTATS_OBS_REC_RW_v0

TCP_ESTATS_PATH_RW_v0

TCP_ESTATS_REC_RW_v0

TCP_ESTATS_SEND_BUFF_RW_v0

TCP_ESTATS_SND_CONG_RW_v0

TCP_ESTATS_TYPE