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列挙型の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
この値は、TCP 接続の拡張データ転送情報を指定します。
この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_DATA_RW_v0 構造体を指している必要があります。 |
|
この値は、TCP 接続の送信者の輻輳を指定します。
この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_SND_CONG_RW_v0 構造体を指している必要があります。 |
|
この値は、TCP 接続の拡張パス測定情報を指定します。
この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_PATH_RW_v0 構造体を指している必要があります。 |
|
この値は、TCP 接続の拡張出力キュー情報を指定します。
この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_SEND_BUFF_RW_v0 構造体を指している必要があります。 |
|
この値は、TCP 接続の拡張ローカル 受信側情報を指定します。
この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_REC_RW_v0 構造体を指している必要があります。 |
|
この値は、TCP 接続の拡張リモート・レシーバー情報を指定します。
この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_OBS_REC_RW_v0 構造体を指している必要があります。 |
|
この値は、帯域幅に対する TCP 接続の帯域幅推定統計を指定します。
この値を指定すると、 Rw パラメーターが指すバッファーは 、TCP_ESTATS_BANDWIDTH_RW_v0 構造体を指している必要があります。 |
|
この値は、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。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
アクセスが拒否されました。 このエラーは、次のようないくつかの条件で返されます。ユーザーがローカル コンピューターで必要な管理特権を持っていないか、アプリケーションが組み込みの管理者 (RunAs 管理者) として拡張シェルで実行されていません。 |
|
パラメーターが正しくありません。 Row パラメーターが NULL ポインターの場合、このエラーが返されます。 |
|
指定されたユーザー バッファーは、要求された操作に対して無効です。 Row パラメーターが NULL ポインターで、RwSize パラメーターが 0 以外の場合、このエラーが返されます。 |
|
この要求されたエントリが見つかりませんでした。 Row パラメーターで指定された TCP 接続が見つからなかった場合、このエラーが返されます。 |
|
要求はサポートされていません。 このエラーは、 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 |