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函数将接口索引映射到其相应的名称中。 此函数设计为 IPv6 的基本套接字扩展的一部分,如 RFC 2553 中的 IETF 所述。

实现 if_indextoname 函数是为了在 Unix 环境中实现驱动程序的可移植性,但 ConvertInterfaceXxx 函数是转换网络接口标识符的首选方法。 可以通过调用 ConvertInterfaceIndexToLuid 函数替换 if_indextoname 函数,以将接口索引转换为NET_LUID联合,然后调用 ConvertInterfaceLuidToNameA 函数以将NET_LUID转换为 ANSI 接口名称。

InterfaceName 参数指向的缓冲区的长度(以字节为单位)必须等于或大于 IF_NAMESIZE。 IF_NAMESIZE值在 Netioapi.h 头文件中定义为等于 NDIS_IF_MAX_STRING_SIZE。 在 Ntddndis.h 头文件中声明接口名称的最大长度(NDIS_IF_MAX_STRING_SIZE),不带终止 NULL 字符。 NDIS_IF_MAX_STRING_SIZE定义为 Ifdef.h 头文件中定义的IF_MAX_STRING_SIZE常量。

注意

Ntddndis.hIfdef.h 头文件会自动包含在 Netioapi.h 头文件中。 切勿直接使用 Ntddndis.hIfdef.h 头文件。

如果 if_indextoname 函数失败并返回 NULL 指针,则无法确定错误代码。

要求

目标平台

通用

版本

在 Windows Vista 和更高版本的 Windows 操作系统中可用。

标头

Netioapi.h (包括 Netioapi.h)

Netio.lib

IRQL

PASSIVE_LEVEL

另请参阅

ConvertInterfaceIndexToLuid

ConvertInterfaceLuidToNameA

NET_LUID