次の方法で共有


GetIfTable2 関数

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

構文

NETIOAPI_API GetIfTable2(
  _Out_ PMIB_IF_TABLE2 *Table
);

パラメーター

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

戻り値

関数が成功した場合、GetIfTable2 は STATUS_SUCCESS を返します。

関数が失敗した場合、GetIfTable2 は次のいずれかのエラー コードを返します:

リターン コード 説明
STATUS_NOT_ENOUGH_MEMORY

操作を完了するために使用できるメモリ リソースが不足しています。

その他

FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。

解説

GetIfTable2 関数は、ローカル コンピューター上の論理インターフェイスと物理インターフェイスを列挙し、この情報を MIB_IF_TABLE2 構造体で返します。

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

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

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

要件

対象プラットフォーム

ユニバーサル

バージョン

Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。

ヘッダー

Netioapi.h (Netioapi.h を含む)

ライブラリ

Netio.lib

IRQL

< DISPATCH_LEVEL

関連項目

FreeMibTable

GetIfTable2Ex

MIB_IF_TABLE2

MIB_IF_ROW2