次の方法で共有


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_indextonameNULL ポインターを返します

解説

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

関連項目

ConvertInterfaceIndexToLuid

ConvertInterfaceLuidToNameA

NET_LUID