次の方法で共有


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 エンドポイントを並べ替えるときは、次の値が比較されます (一覧のとおり)。

  1. ローカル IP アドレス
  2. ローカル スコープ ID ( ulAf パラメーターが AF_INET6 に設定されている場合に適用されます)
  3. ローカル TCP ポート
  4. リモート IP アドレス
  5. リモート スコープ ID ( ulAf パラメーターが AF_INET6 に設定されている場合に適用されます)
  6. リモート TCP ポート

[in] ulAf

TCP エンドポイントによって使用される IP のバージョン。

意味
AF_INET
IPv4 が使用されます。
AF_INET6
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 値が返されます。

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

リターン コード 説明
ERROR_INSUFFICIENT_BUFFER
テーブルに十分な領域が割り当てられなかった。 テーブルのサイズは pdwSize パラメーターで返されます。テーブルを正常に取得するには、この関数の後続の呼び出しで使用する必要があります。

pTcpTable パラメーターが NULL の場合も、このエラーが返されます。

ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。 このエラーは、 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 に設定し、TableClassTCP_TABLE_BASIC_LISTENERTCP_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

こちらもご覧ください

MIB_TCP6TABLE

MIB_TCP6TABLE_OWNER_MODULE

MIB_TCP6TABLE_OWNER_PID

MIB_TCPTABLE

MIB_TCPTABLE_OWNER_MODULE

MIB_TCPTABLE_OWNER_PID

TCP_TABLE_CLASS