if_indextoname 関数
if_indextoname 関数は、ネットワーク インターフェイスのローカル インデックスを ANSI インターフェイス名に変換します。
構文
PCHAR NETIOAPI_API_ if_indextoname(
_In_ NET_IFINDEX InterfaceIndex,
_Out_ PCHAR InterfaceName
);
パラメーター
InterfaceIndex [in]
ネットワーク インターフェイスのローカル インデックス。InterfaceName [out]
NULL で終わる ANSI 文字列を保持するバッファーへのポインター。 if_indextoname が成功した場合、 InterfaceName には ANSI インターフェイス名が含まれます。 このパラメーターが指すバッファーの長さ (バイト単位) は、IF_NAMESIZE以上である必要があります。 IF_NAMESIZE の詳細については、次の「解説」セクションを参照してください。
戻り値
この関数が成功した場合、 if_indextoname はインターフェイス名を含む NULL で終わる ANSI 文字列へのポインターを返します。 この関数が失敗した場合、 if_indextoname は NULL ポインターを返します
解説
if_indextoname 関数は、インターフェイス インデックスを対応する名前にマップします。 この関数は、 RFC 2553 の IETF で説明されているように、IPv6 の基本的なソケット拡張機能の一部として設計されています。
if_indextoname 関数は Unix 環境でのドライバーの移植性のために実装されていますが、 ConvertInterfaceXxx 関数は、ネットワーク インターフェイス識別子を変換するための推奨される方法です。 if_indextoname 関数は、 ConvertInterfaceIndexToLuid 関数を呼び出してインターフェイス インデックスを NET_LUID 共用体に変換し、その後に ConvertInterfaceLuidToNameA 関数を呼び出して、NET_LUIDを ANSI インターフェイス名に変換することで置き換えることができます。
InterfaceName パラメーターが指すバッファーの長さ (バイト単位) は、IF_NAMESIZE以上である必要があります。 IF_NAMESIZE値は、netioapi.h ヘッダー ファイルでNDIS_IF_MAX_STRING_SIZEと同じように定義されます。 インターフェイス名の最大長 (終了 NULL 文字を除くNDIS_IF_MAX_STRING_SIZE) は、Ntddndis.h ヘッダー ファイルで宣言されます。 NDIS_IF_MAX_STRING_SIZEは、Ifdef.h ヘッダー ファイルで定義されているIF_MAX_STRING_SIZE定数として定義されます。
Note
Ntddndis.h および Ifdef.h ヘッダー ファイルは、 Netioapi.h ヘッダー ファイルに自動的に含まれます。 Ntddndis.h ヘッダー ファイルと Ifdef.h ヘッダー ファイルを直接使用しないでください。
if_indextoname 関数が失敗して NULL ポインターを返した場合、エラー コードを特定できません。
要件
対象プラットフォーム |
ユニバーサル |
バージョン |
Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダー |
Netioapi.h (Netioapi.h を含む) |
ライブラリ |
Netio.lib |
IRQL |
PASSIVE_LEVEL |