次の方法で共有


GetIfTable2Ex 関数 (netioapi.h)

GetIfTable2Ex 関数は、MIB-II インターフェイス テーブルを取得します。

構文

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIfTable2Ex(
  [in]  MIB_IF_TABLE_LEVEL Level,
  [out] PMIB_IF_TABLE2     *Table
);

パラメーター

[in] Level

取得するインターフェイス情報のレベル。 このパラメーターには、Netioapi.h ヘッダー ファイルで定義されているMIB_IF_TABLE_LEVEL列挙型の値のいずれかを指定できます。

意味
MibIfTableNormal
Table パラメーターが指すMIB_IF_TABLE2構造体のMIB_IF_ROW2構造体のメンバーで返される統計と状態の値は、このパラメーターを指定すると、フィルター スタックの上部から返されます。
MibIfTableRaw
Table パラメーターが指すMIB_IF_TABLE2構造体のMIB_IF_ROW2構造体のメンバーで返される統計と状態の値は、クエリ対象のインターフェイスに対して直接返されます。

[out] Table

MIB_IF_TABLE2構造体内のインターフェイスのテーブルを受け取るバッファーへのポインター。

戻り値

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

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

リターン コード 説明
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。 このエラーは、 Level パラメーターに無効な値が渡された場合に返されます。
ERROR_NOT_ENOUGH_MEMORY
操作を完了するために使用できるメモリ リソースが不足しています。
その他
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。

注釈

次に、
GetIfTable2Ex 関数は、ローカル システム上の論理インターフェイスと物理インターフェイスを列挙し、この情報を MIB_IF_TABLE2 構造体で返します。 GetIfTable2Ex は、取得するインターフェイス情報のレベルを選択できる GetIfTable 関数の拡張バージョンです。

同様の GetIfTable2 関数を使用してインターフェイスを取得することもできます。 ただし、返されるインターフェイスのレベルを指定することはできません。 Level パラメーターを MibIfTableNormal に設定して GetIfTable2Ex 関数を呼び出すと、GetIfTable2 関数の呼び出しと同じ結果が取得されます。

インターフェイスは、Table パラメーターによって指されるバッファー内のMIB_IF_TABLE2構造体で返されます。 MIB_IF_TABLE2構造体には、インターフェイス数と、各インターフェイスのMIB_IF_ROW2構造体の配列が含まれています。 メモリは、MIB_IF_TABLE2構造体と、この構造体のMIB_IF_ROW2エントリに対して GetIfTable2 関数によって割り当てられます。 これらの返された構造体が不要になったら、 FreeMibTable を呼び出してメモリを解放します。

NDIS 中間ドライバー インターフェイスと NDIS フィルター ドライバー インターフェイスを含むすべてのインターフェイスは、 Level パラメーターの使用可能な値のいずれかに対して返されます。 Level パラメーターの設定は、インターフェイスの Table パラメーターが指すMIB_IF_TABLE2構造体のMIB_IF_ROW2構造体の統計および状態メンバーが返される方法に影響します。 たとえば、ネットワーク インターフェイス カード (NIC) には NDIS ミニポート ドライバーがあります。 NDIS 中間ドライバーは、上位レベルのプロトコル ドライバーと NDIS ミニポート ドライバーの間のインターフェイスにインストールできます。 NDIS フィルター ドライバー (LWF) は、NDIS 中間ドライバーの上に接続できます。 NIC は 、MIB_IF_ROW2 構造体の MediaConnectState メンバーを MediaConnectStateConnected として報告しますが、NDIS フィルター ドライバーは状態を変更し、状態を MediaConnectStateDisconnected として報告するとします。 Level パラメーターを MibIfTableNormal に設定してインターフェイス情報を照会すると、フィルター スタックの上部にある状態 (MediaConnectStateDisconnected) が報告されます。 Level パラメーターを MibIfTableRaw に設定してインターフェイスを照会すると、インターフェイス レベルの状態 (MediaConnectStateConnected) が直接返されます。

Table パラメーターによって示される返されるMIB_IF_TABLE2構造体には、NumEntries メンバーと、MIB_IF_TABLE2 構造体の Table メンバー内の最初のMIB_IF_ROW2配列エントリとの間の配置のためのパディング含まれている場合があることに注意してください。 配置のパディングは、 MIB_IF_ROW2 配列エントリ間に存在する場合もあります。 MIB_IF_ROW2配列エントリへのアクセスでは、埋め込みが存在する可能性があると想定する必要があります。

要件

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

こちらもご覧ください

FreeMibTable

GetIfTable

GetIfTable2

IP ヘルパー関数リファレンス

MIB_IF_ROW2

MIB_IF_TABLE2