GetIfStackTable 関数 (netioapi.h)
GetIfStackTable 関数は、インターフェイス スタック上のネットワーク インターフェイスのリレーションシップを指定するネットワーク インターフェイス スタック行エントリのテーブルを取得します。
構文
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIfStackTable(
[out] PMIB_IFSTACK_TABLE *Table
);
パラメーター
[out] Table
MIB_IFSTACK_TABLE構造体内のインターフェイス スタック行エントリのテーブルを受け取るバッファーへのポインター。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
無効なパラメーターが関数に渡されました。 このエラーは、Table パラメーターに NULL ポインターが渡された場合に返されます。 |
|
操作を完了するために使用できるメモリ リソースが不足しています。 |
|
インターフェイス スタック エントリが見つかりませんでした。 |
|
FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。 |
注釈
GetIfStackTable 関数は、Windows Vista 以降で定義されています。
次に、
GetIfStackTable 関数は、ローカル システム上のインターフェイス スタック上の物理ネットワーク インターフェイスと論理ネットワーク インターフェイスを列挙し、この情報を MIB_IFSTACK_TABLE 構造体で返します。
インターフェイス スタック エントリは、Table パラメーターによって指されるバッファー内のMIB_IFSTACK_TABLE構造体で返されます。 MIB_IFSTACK_TABLE構造体には、インターフェイス スタック エントリ数と、各インターフェイス スタック エントリのMIB_IFSTACK_ROW構造体の配列が含まれています。
インターフェイス スタック内のインターフェイス間の関係は、MIB_IFSTACK_ROW 構造体の HigherLayerInterfaceIndex メンバーのインデックスを持つインターフェイスが、MIB_IFSTACK_ROW構造体の LowerLayerInterfaceIndex メンバーのインデックスを持つインターフェイスのすぐ上にあるということです。
メモリは、MIB_IFSTACK_TABLE構造体と、この構造体のMIB_IFSTACK_ROWエントリに対して GetIfStackTable 関数によって割り当てられます。 これらの返された構造体が不要になったら、 FreeMibTable を呼び出してメモリを解放します。
Table パラメーターによって示される返されるMIB_IFSTACK_TABLE構造体には、NumEntries メンバーと、MIB_IFSTACK_TABLE構造体の Table メンバー内の最初のMIB_IFSTACK_ROW配列エントリとの間の配置のためのパディングが含まれている場合があることに注意してください。 配置のパディングは、 MIB_IFSTACK_ROW 配列エントリ間に存在する場合もあります。 MIB_IFSTACK_ROW配列エントリへのアクセスでは、埋め込みが存在する可能性があると想定する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | netioapi.h (Iphlpapi.h を含む) |
Library | Iphlpapi.lib |
[DLL] | Iphlpapi.dll |