GetExtendedTcpTable 関数 (iphlpapi.h)
GetExtendedTcpTable 関数は、アプリケーションで使用できる TCP エンドポイントの一覧を含むテーブルを取得します。
構文
IPHLPAPI_DLL_LINKAGE DWORD GetExtendedTcpTable(
[out] PVOID pTcpTable,
[in, out] PDWORD pdwSize,
[in] BOOL bOrder,
[in] ULONG ulAf,
[in] TCP_TABLE_CLASS TableClass,
[in] ULONG Reserved
);
パラメーター
[out] pTcpTable
アプリケーションで使用できるフィルター処理された TCP エンドポイントを含むテーブル構造へのポインター。 特定の入力パラメーターの組み合わせに基づいて返されるテーブルの種類を決定する方法については、このドキュメントの後半の「解説」セクションを参照してください。
[in, out] pdwSize
pTcpTable で返される構造体の推定サイズ (バイト単位)。 この値が小さすぎると、この関数によって ERROR_INSUFFICIENT_BUFFER が返され、このフィールドには構造体の正しいサイズが含まれます。
[in] bOrder
TCP 接続テーブルを並べ替える必要があるかどうかを示す 値です。 このパラメーターが TRUE に設定されている場合、テーブル内の TCP エンドポイントは、最も低いローカル IP アドレスから始まる昇順で並べ替えられます。 このパラメーターが FALSE に設定されている場合、テーブル内の TCP エンドポイントは、取得された順序で表示されます。
TCP エンドポイントを並べ替えるときは、次の値が比較されます (一覧のとおり)。
- ローカル IP アドレス
- ローカル スコープ ID ( ulAf パラメーターが AF_INET6 に設定されている場合に適用されます)
- ローカル TCP ポート
- リモート IP アドレス
- リモート スコープ ID ( ulAf パラメーターが AF_INET6 に設定されている場合に適用されます)
- リモート TCP ポート
[in] ulAf
TCP エンドポイントによって使用される IP のバージョン。
値 | 意味 |
---|---|
|
IPv4 が使用されます。 |
|
IPv6 が使用されます。 |
[in] TableClass
取得する TCP テーブル構造の型。 このパラメーターには、 TCP_TABLE_CLASS 列挙の値のいずれかを指定できます。
Windows Vista 以降用にリリースされたWindows SDKでは、ヘッダー ファイルのorganizationが変更され、TCP_TABLE_CLASS列挙は Iphlpapi.h ヘッダー ファイルではなく Iprtrmib.h ヘッダー ファイルで定義されます。
TCP_TABLE_CLASS列挙値を ulAf パラメーターの値と組み合わせて、取得する拡張 TCP 情報を決定します。
[in] Reserved
予約済み。 必ずゼロを指定します。
戻り値
呼び出しが成功した場合は、 NO_ERROR 値が返されます。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
テーブルに十分な領域が割り当てられなかった。 テーブルのサイズは pdwSize パラメーターで返されます。テーブルを正常に取得するには、この関数の後続の呼び出しで使用する必要があります。
pTcpTable パラメーターが NULL の場合も、このエラーが返されます。 |
|
無効なパラメーターが関数に渡されました。 このエラーは、 TableClass パラメーターに 、TCP_TABLE_CLASS 列挙で定義されていない値が含まれている場合に返されます。 |
注釈
この関数によって返されるテーブル型は、 ulAf パラメーターと TableClass パラメーターの特定の組み合わせによって異なります。
ulAf パラメーターが AF_INET に設定されている場合、次の表は、使用可能な TableClass 値ごとに pTcpTable パラメーターが指す構造体で取得する TCP テーブルの種類を示します。
TableClass 値 | pTcpTable 構造体 |
---|---|
TCP_TABLE_BASIC_ALL | MIB_TCPTABLE |
TCP_TABLE_BASIC_CONNECTIONS | MIB_TCPTABLE |
TCP_TABLE_BASIC_LISTENER | MIB_TCPTABLE |
TCP_TABLE_OWNER_MODULE_ALL | MIB_TCPTABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_CONNECTIONS | MIB_TCPTABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_LISTENER | MIB_TCPTABLE_OWNER_MODULE |
TCP_TABLE_OWNER_PID_ALL | MIB_TCPTABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_CONNECTIONS | MIB_TCPTABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_LISTENER | MIB_TCPTABLE_OWNER_PID |
ulAf パラメーターが AF_INET6 に設定されている場合、次の表は、使用可能な TableClass 値ごとに pTcpTable パラメーターが指す構造体で取得する TCP テーブルの種類を示します。
TableClass 値 | pTcpTable 構造体 |
---|---|
TCP_TABLE_OWNER_MODULE_ALL | MIB_TCP6TABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_CONNECTIONS | MIB_TCP6TABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_LISTENER | MIB_TCP6TABLE_OWNER_MODULE |
TCP_TABLE_OWNER_PID_ALL | MIB_TCP6TABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_CONNECTIONS | MIB_TCP6TABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_LISTENER | MIB_TCP6TABLE_OWNER_PID |
ulAf パラメーターを AF_INET6 に設定し、TableClass を TCP_TABLE_BASIC_LISTENER、TCP_TABLE_BASIC_CONNECTIONS、またはTCP_TABLE_BASIC_ALL に設定して呼び出した GetExtendedTcpTable 関数はサポートされておらず、ERROR_NOT_SUPPORTEDを返します。
Windows Vista 以降用にリリースされたWindows SDKでは、ヘッダー ファイルのorganizationが変更されました。 Iprtrmib.h ヘッダー ファイルではなく、Tcpmib.h ヘッダー ファイルには、さまざまなMIB_TCPTABLE構造体が定義されています。 Tcpmib.h ヘッダー ファイルは、Iphlpapi.h ヘッダー ファイルに自動的に含まれる Iprtrmib.h に自動的に含まれることに注意してください。 Tcpmib.h および Iprtrmib.h ヘッダー ファイルを直接使用しないでください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista、SP2 を使用した Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008、Windows Server 2003 SP1 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | iphlpapi.h |
Library | Iphlpapi.lib |
[DLL] | Iphlpapi.dll |