GetIpNetworkConnectionBandwidthEstimates 関数 (netioapi.h)
GetIpNetworkConnectionBandwidthEstimates 関数は、指定されたインターフェイス上のネットワーク接続の過去の帯域幅見積もりを取得します。
構文
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIpNetworkConnectionBandwidthEstimates(
[in] NET_IFINDEX InterfaceIndex,
[in] ADDRESS_FAMILY AddressFamily,
[out] PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES BandwidthEstimates
);
パラメーター
[in] InterfaceIndex
ネットワーク インターフェイスのローカル インデックス値。
このインデックス値は、ネットワーク アダプターを無効にしてから有効にした場合、またはその他の状況で変更される可能性があり、永続的と見なすべきではありません。
[in] AddressFamily
アドレス ファミリ。 アドレス ファミリに使用できる値は、 Ws2def.h ヘッダー ファイルに一覧表示されます。 AF_ アドレス ファミリ定数とPF_ プロトコル ファミリ定数の値は同一であるため ( たとえば、AF_INET と PF_INET)、どちらの定数も使用できます。
Ws2def.h ヘッダー ファイルは Winsock2.h に自動的に含まれるので、直接使用しないでください。
現在サポートされている値は 、IPv4 と IPv6 のインターネット アドレス ファミリ形式である AF_INETまたはAF_INET6です。
値 | 意味 |
---|---|
|
インターネット プロトコル バージョン 4 (IPv4) アドレス ファミリ。 |
|
インターネット プロトコル バージョン 6 (IPv6) アドレス ファミリ。 |
[out] BandwidthEstimates
インターフェイスが現在接続されている接続ポイントに対して保持されている帯域幅の推定履歴を返すバッファーへのポインター。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
指定されたファイルが見つかりません。 InterfaceIndex パラメーターで指定されたインターフェイス インデックスがローカル コンピューター上の値ではない場合、このエラーが返されます。 |
|
無効なパラメーターが関数に渡されました。 このエラーは、BandwidthEstimates パラメーターで NULL ポインターが渡された場合、または AddressFamily パラメーターが AF_INET または AF_INET6 として指定されていない場合に返されます。 |
|
Element not found. InterfaceIndex パラメーターで指定されたネットワーク インターフェイスが AddressFamily パラメーターで指定された IP アドレス ファミリと一致しない場合、このエラーが返されます。 |
|
FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。 |
注釈
GetIpNetworkConnectionBandwidthEstimates 関数は、Windows 8 以降で定義されています。
入力時には、 AddressFamily パラメーターを AF_INET または AF_INET6 に初期化する必要があります。 入力に加えて、 InterfaceIndex パラメーターは、指定したインターフェイス インデックスを使用して初期化する必要があります。
InterfaceIndex パラメーターに値を設定する必要があります (このパラメーターの値を 0 に設定することはできません)。
出力時に、AddressFamily パラメーターと InterfaceIndex パラメーターが指定されている場合、BandwidthEstimates パラメーターが指すMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES構造体が入力されます。
GetIpNetworkConnectionBandwidthEstimates 関数は、アプリケーションで使用する接続ポイント (最初のホップ) で使用可能な帯域幅の過去の推定値を返します。 この見積もりは、パフォーマンス パラメーターを調整するためのガイドとして意図されており、アプリケーションはしきい値を維持し、低帯域幅と高帯域幅の状況で動作を区別する必要があります。
同じネットワーク上で競合するデバイスによって消費される帯域幅が増えると、実際に使用可能な帯域幅が時間の経過と同時に変化する可能性があります。 そのため、使用可能な帯域幅が GetIpNetworkConnectionBandwidthEstimates 関数によって報告された履歴制限を下回るケースを処理するようにアプリケーションを準備する必要があります。
TCP/IP スタックが、特定のインターフェイスまたは双方向の推定を構築していない可能性があります。 この場合、返される推定値は 0 になります。 適切な既定値を選択し、必要に応じて微調整することで、このようなケースを処理するようにアプリケーションを準備する必要があります。
Netioapi.h ヘッダー ファイルは、Iphlpapi.h ヘッダー ファイルによって自動的に含まれます。 Netioapi.h ヘッダー ファイルを直接使用しないでください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | netioapi.h (Iphlpapi.h を含む) |
Library | Iphlpapi.lib |
[DLL] | Iphlpapi.dll |