GetInvertedIfStackTable 関数
GetInvertedIfStackTable 関数は、インターフェイス スタック上のネットワーク インターフェイスのリレーションシップを指定する反転ネットワーク インターフェイス スタック行エントリのテーブルを取得します。
構文
NETIOAPI_API GetInvertedIfStackTable(
_Out_ PMIB_INVERTEDIFSTACK_TABLE *Table
);
パラメーター
- テーブル [out]
MIB_INVERTEDIFSTACK_TABLE 構造体の反転インターフェイス スタック行エントリのテーブルを受け取るバッファーへのポインター。
戻り値
関数が成功した場合、GetInvertedIfStackTable は STATUS_SUCCESS を返します。
関数が失敗した場合、GetInvertedIfStackTable は次のいずれかのエラー コードを返します:
リターン コード | 説明 |
---|---|
STATUS_INVALID_PARAMETER | その関数に渡された無効なパラメーター。 このエラーは、Table パラメーターに NULL ポインターが渡された場合に返されます。 |
STATUS_NOT_ENOUGH_MEMORY | 操作を完了するために使用できるメモリ リソースが不足しています。 |
STATUS_NOT_FOUND | インターフェイス スタック エントリが見つかりませんでした。 |
その他 | FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。 |
解説
GetInvertedIfStackTable 関数は、ローカル コンピューター上のインターフェイス スタック上の物理ネットワーク インターフェイスと論理ネットワーク インターフェイスを列挙し、この情報を MIB_INVERTEDIFSTACK_TABLE 構造体に反転形式で返します。
GetInvertedIfStackTable は、Table パラメーターが指すバッファー内の MIB_INVERTEDIFSTACK_TABLE 構造体のインターフェイス スタック エントリを返します。 MIB_INVERTEDIFSTACK_TABLE 構造体には、インターフェイス スタック エントリ数と、各インターフェイス スタック エントリの MIB_INVERTEDIFSTACK_ROW 構造体の配列が含まれています。
インターフェイス スタック内のインターフェイス間の関係は、MIB_INVERTEDIFSTACK_ROW 構造体の HigherLayerInterfaceIndex メンバーのインデックスを持つインターフェイスが、MIB_INVERTEDIFSTACK_ROW 構造体の LowerLayerInterfaceIndex メンバーのインデックスを持つインターフェイスのすぐ上にあるということです。
GetInvertedIfStackTable は、MIB_INVERTEDIFSTACK_TABLE 構造体と、この構造体の MIB_INVERTEDIFSTACK_ROW エントリにメモリを割り当てます。 これらの返された構造体が不要になった場合、ドライバーは FreeMibTable を呼び出してメモリを解放する必要があります。
Table パラメーターが指す返された MIB_INVERTEDIFSTACK_TABLE 構造体には、NumEntries メンバーと MIB_INVERTEDIFSTACK_TABLE 構造体の Table メンバーの最初の MIB_INVERTEDIFSTACK_ROW 配列エントリとの間に、整列のためのパディングが含まれている可能性があることに注意してください。 整列のためのパディングは、MIB_INVERTEDIFSTACK_ROW 配列エントリ間にも存在する場合があります。 MIB_INVERTEDIFSTACK_ROW 配列エントリへのアクセスには、パディングが存在する可能性があることを前提とするべきです。
要件
対象プラットフォーム |
ユニバーサル |
バージョン |
Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダー |
Netioapi.h (Netioapi.h を含む) |
ライブラリ |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |