netioapi.h) (MIB_IF_ROW2 结构

MIB_IF_ROW2 结构存储有关特定接口的信息。

语法

typedef struct _MIB_IF_ROW2 {
  NET_LUID                   InterfaceLuid;
  NET_IFINDEX                InterfaceIndex;
  GUID                       InterfaceGuid;
  WCHAR                      Alias[IF_MAX_STRING_SIZE + 1];
  WCHAR                      Description[IF_MAX_STRING_SIZE + 1];
  ULONG                      PhysicalAddressLength;
  UCHAR                      PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
  UCHAR                      PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
  ULONG                      Mtu;
  IFTYPE                     Type;
  TUNNEL_TYPE                TunnelType;
  NDIS_MEDIUM                MediaType;
  NDIS_PHYSICAL_MEDIUM       PhysicalMediumType;
  NET_IF_ACCESS_TYPE         AccessType;
  NET_IF_DIRECTION_TYPE      DirectionType;
  struct {
    BOOLEAN HardwareInterface : 1;
    BOOLEAN FilterInterface : 1;
    BOOLEAN ConnectorPresent : 1;
    BOOLEAN NotAuthenticated : 1;
    BOOLEAN NotMediaConnected : 1;
    BOOLEAN Paused : 1;
    BOOLEAN LowPower : 1;
    BOOLEAN EndPointInterface : 1;
  } InterfaceAndOperStatusFlags;
  IF_OPER_STATUS             OperStatus;
  NET_IF_ADMIN_STATUS        AdminStatus;
  NET_IF_MEDIA_CONNECT_STATE MediaConnectState;
  NET_IF_NETWORK_GUID        NetworkGuid;
  NET_IF_CONNECTION_TYPE     ConnectionType;
  ULONG64                    TransmitLinkSpeed;
  ULONG64                    ReceiveLinkSpeed;
  ULONG64                    InOctets;
  ULONG64                    InUcastPkts;
  ULONG64                    InNUcastPkts;
  ULONG64                    InDiscards;
  ULONG64                    InErrors;
  ULONG64                    InUnknownProtos;
  ULONG64                    InUcastOctets;
  ULONG64                    InMulticastOctets;
  ULONG64                    InBroadcastOctets;
  ULONG64                    OutOctets;
  ULONG64                    OutUcastPkts;
  ULONG64                    OutNUcastPkts;
  ULONG64                    OutDiscards;
  ULONG64                    OutErrors;
  ULONG64                    OutUcastOctets;
  ULONG64                    OutMulticastOctets;
  ULONG64                    OutBroadcastOctets;
  ULONG64                    OutQLen;
} MIB_IF_ROW2, *PMIB_IF_ROW2;

成员

InterfaceLuid

类型: NET_LUID

网络接口的本地唯一标识符 (LUID) 。

InterfaceIndex

类型: NET_IFINDEX

标识网络接口的索引。 禁用然后启用网络适配器时,此索引值可能会更改,不应将其视为永久性。

InterfaceGuid

类型: GUID

网络接口的 GUID。

Alias[IF_MAX_STRING_SIZE + 1]

类型: WCHAR[IF_MAX_STRING_SIZE + 1]

一个以 NULL 结尾的 Unicode 字符串,其中包含网络接口的别名。

Description[IF_MAX_STRING_SIZE + 1]

类型: WCHAR[IF_MAX_STRING_SIZE + 1]

一个以 NULL 结尾的 Unicode 字符串,其中包含网络接口的说明。

PhysicalAddressLength

类型: ULONG

PhysicalAddress 成员指定的物理硬件地址的长度(以字节为单位)。

PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]

类型: UCHAR[IF_MAX_PHYS_ADDRESS_LENGTH]

此网络接口的适配器的物理硬件地址。

PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]

类型: UCHAR[IF_MAX_PHYS_ADDRESS_LENGTH]

此网络接口的适配器的永久物理硬件地址。

Mtu

类型: ULONG

此网络接口的最大传输单元 (MTU) 大小(以字节为单位)。

Type

类型: IFTYPE

Internet 分配名称机构 (IANA) 定义的接口类型。 有关详细信息,请参阅 http://www.iana.org/assignments/ianaiftype-mibIpifcons.h 头文件中列出了接口类型的可能值。

下表列出了接口类型的常见值,尽管可能还有许多其他值。

含义
IF_TYPE_OTHER
1
其他一些类型的网络接口。
IF_TYPE_ETHERNET_CSMACD
6
以太网网络接口。
IF_TYPE_ISO88025_TOKENRING
9
令牌环网络接口。
IF_TYPE_FDDI
15
(FDDI) 网络接口的光纤分布式数据接口。
IF_TYPE_PPP
23
PPP 网络接口。
IF_TYPE_SOFTWARE_LOOPBACK
24
软件环回网络接口。
IF_TYPE_ATM
37
ATM 网络接口。
IF_TYPE_IEEE80211
71
IEEE 802.11 无线网络接口。
IF_TYPE_TUNNEL
131
隧道类型封装网络接口。
IF_TYPE_IEEE1394
144
IEEE 1394 (Firewire) 高性能串行总线网络接口。
IF_TYPE_IEEE80216_WMAN
237
适用于 WiMax 设备的移动宽带接口。
注意 Windows 7、Windows Server 2008 R2 及更高版本支持此接口类型。
 
IF_TYPE_WWANPP
243
适用于基于 GSM 的设备的移动宽带接口。
注意 Windows 7、Windows Server 2008 R2 及更高版本支持此接口类型。
 
IF_TYPE_WWANPP2
244
基于 CDMA 的设备移动宽带接口。
注意 Windows 7、Windows Server 2008 R2 及更高版本支持此接口类型。
 

TunnelType

类型: TUNNEL_TYPE

如果 type成员IF_TYPE_TUNNEL,则为隧道使用的封装方法。 隧道类型由 Internet 域名分配机构 (IANA) 定义。 有关详细信息,请参阅 http://www.iana.org/assignments/ianaiftype-mib。 此成员可以是 Ifdef.h 头文件中定义的 TUNNEL_TYPE 枚举类型的值之一。

含义
TUNNEL_TYPE_NONE
0
不是隧道。
TUNNEL_TYPE_OTHER
1
以下任何隧道类型都不是。
TUNNEL_TYPE_DIRECT
2
数据包直接封装在普通 IP 标头中,没有中间标头,并单播到远程隧道终结点。
TUNNEL_TYPE_6TO4
11
IPv6 数据包直接封装在 IPv4 标头中,没有中间标头,并单播到由 6to4 协议确定的目标。
TUNNEL_TYPE_ISATAP
13
IPv6 数据包直接封装在 IPv4 标头中,没有中间标头,并单播到由 ISATAP 协议确定的目标。
TUNNEL_TYPE_TEREDO
14
Teredo 封装。

MediaType

类型: NDIS_MEDIUM

接口的 NDIS 媒体类型。 此成员可以是 Ntddndis.h 头文件中定义的 NDIS_MEDIUM 枚举类型的值之一。

含义
NdisMedium802_3
0
以太网 (802.3) 网络。
NdisMedium802_5
1
令牌环 (802.5) 网络。
NdisMediumFddi
2
(FDDI) 网络的光纤分布式数据接口。
NdisMediumWan
3
广域网 (WAN) 。 此类型涵盖各种形式的点到点和 WAN NIC,以及建立绑定后必须在协议驱动程序和基础驱动程序之间协商的变体地址/标头格式。
NdisMediumLocalTalk
4
LocalTalk 网络。
NdisMediumDix
5
驱动程序使用 DIX 以太网标头格式的以太网网络。
NdisMediumArcnetRaw
6
ARCNET 网络。
NdisMediumArcnet878_2
7
ARCNET (878.2) 网络。
NdisMediumAtm
8
ATM 网络。 面向连接的客户端协议驱动程序可以将自身绑定到返回此值的基础微型端口驱动程序。 否则,旧协议驱动程序会自行绑定到系统提供的 LanE 中间驱动程序,后者将其中等类型报告为NdisMedium802_3或NdisMedium802_5,具体取决于网络管理员配置 LanE 驱动程序的方式。
NdisMediumWirelessWan
9
无线网络。 支持无线 LAN (WLAN) 或无线 WAN (WWAN) 数据包的 NDIS 5.X 微型端口驱动程序不使用此 NDIS 媒体类型,而是将其媒体类型声明为NdisMedium802_3,并将以太网模拟到更高级别的 NDIS 驱动程序。
注意 此媒体类型受支持,并且只能在 Windows 7、Windows Server 2008 R2 及更高版本上使用移动宽带。
 
NdisMediumIrda
10
红外 (IrDA) 网络。
NdisMediumBpc
11
广播电脑网络。
NdisMediumCoWan
12
面向连接的环境中的广域网。
NdisMedium1394
13
IEEE 1394 (消防线) 网络。
NdisMediumInfiniBand
14
InfiniBand 网络。
NdisMediumTunnel
15
隧道网络。
注意 Windows Vista、Windows Server 2008 及更高版本支持此媒体类型。
 
NdisMediumNative802_11
16
本机 IEEE 802.11 网络。
注意 Windows Vista、Windows Server 2008 及更高版本支持此媒体类型。
 
NdisMediumLoopback
17
NDIS 环回网络。
注意 Windows Vista、Windows Server 2008 及更高版本支持此媒体类型。
 
NdisMediumWiMax
18
WiMax 网络。
注意 Windows 7、Windows Server 2008 R2 及更高版本支持此媒体类型。
 

PhysicalMediumType

类型: NDIS_PHYSICAL_MEDIUM

NDIS 物理介质类型。 此成员可以是 Ntddndis.h 头文件中定义的 NDIS_PHYSICAL_MEDIUM 枚举类型的值之一。

含义
NdisPhysicalMediumUnspecified
0
物理介质不是以下值。 例如,单向卫星馈送是未指定的物理介质。
NdisPhysicalMediumWirelessLan
1
数据包通过符合 802.11 接口的微型端口驱动程序通过无线 LAN 网络传输。
NdisPhysicalMediumCableModem
2
数据包通过基于 DOCSIS 的电缆网络传输。
NdisPhysicalMediumPhoneLine
3
数据包通过标准电话线传输。 例如,这包括 HomePNA 媒体。
NdisPhysicalMediumPowerLine
4
数据包通过连接到电源分配系统的线路传输。
NdisPhysicalMediumDSL
5
数据包通过数字订户线路 (DSL) 网络传输。 例如,这包括 ADSL、UADSL (G.Lite) 和 SDSL。
NdisPhysicalMediumFibreChannel
6
数据包通过光纤通道互连传输。
NdisPhysicalMedium1394
7
数据包通过 IEEE 1394 总线传输。
NdisPhysicalMediumWirelessWan
8
数据包通过无线 WAN 链路传输。 例如,这包括支持 CDPD、CDMA、GSM 和 GPRS 的移动宽带设备。
NdisPhysicalMediumNative802_11
9
数据包通过符合本机 802.11 接口的微型端口驱动程序通过无线 LAN 网络传输。
注意 NDIS 6.0 及更高版本中支持本机 802.11 接口。
 
NdisPhysicalMediumBluetooth
10
数据包通过蓝牙网络传输。 蓝牙是一种短程无线技术,使用 2.4 GHz 频谱。
NdisPhysicalMediumInfiniband
11
数据包通过 Infiniband 互连传输。
NdisPhysicalMediumWiMax
12
数据包通过 WiMax 网络传输。
NdisPhysicalMediumUWB
13
数据包通过超宽带网络传输。
NdisPhysicalMedium802_3
14
数据包通过以太网 (802.3) 网络传输。
NdisPhysicalMedium802_5
15
数据包通过令牌环 (802.5) 网络传输。
NdisPhysicalMediumIrda
16
数据包通过红外 (IrDA) 网络传输。
NdisPhysicalMediumWiredWAN
17
数据包通过有线 WAN 网络传输。
NdisPhysicalMediumWiredCoWan
18
数据包在面向连接的环境中通过广域网传输。
NdisPhysicalMediumOther
19
数据包通过未由其他可能值描述的网络传输。

AccessType

类型: NET_IF_ACCESS_TYPE

接口访问类型。 此成员可以是 Ifdef.h 头文件中定义的 NET_IF_ACCESS_TYPE 枚举类型的值之一。

含义
NET_IF_ACCESS_LOOPBACK
1
环回访问类型。 此访问类型指示接口以接收数据的形式向后循环传输数据。
NET_IF_ACCESS_BROADCAST
2
包括以太网的 LAN 访问类型。 此访问类型指示接口为多播或广播服务提供本机支持。
注意MediaTypeNdisMedium802_3 的移动宽带接口使用此访问类型。
 
NET_IF_ACCESS_POINT_TO_POINT
3
支持 CoNDIS/WAN 的点到点访问,非广播多接入 (NBMA) 接口除外。
注意MediaTypeNdisMediumWirelessWan 的移动宽带接口使用此访问类型。
 
NET_IF_ACCESS_POINT_TO_MULTI_POINT
4
支持非广播多接入 (NBMA) 媒体的点到多点访问,包括“RAS 内部”接口和本机 (非 LANE) ATM。
NET_IF_ACCESS_MAXIMUM
5
NET_IF_ACCESS_TYPE 枚举类型的最大值。 这不是 AccessType 成员的合法值。

DirectionType

类型: NET_IF_DIRECTION_TYPE

接口方向类型。 此成员可以是 Ifdef.h 头文件中定义的 NET_IF_DIRECTION_TYPE 枚举类型的值之一。

含义
NET_IF_DIRECTION_SENDRECEIVE
0
发送和接收方向类型。 此方向类型指示 NDIS 网络接口可以发送和接收数据。
NET_IF_DIRECTION_SENDONLY
1
仅发送方向类型。 此方向类型指示 NDIS 网络接口只能发送数据。
NET_IF_DIRECTION_RECEIVEONLY
2
仅接收方向类型。 此方向类型指示 NDIS 网络接口只能接收数据。
NET_IF_DIRECTION_MAXIMUM
3
NET_IF_DIRECTION_TYPE 枚举类型的最大值。 这不是 DirectionType 成员的法律值。

InterfaceAndOperStatusFlags

提供接口相关信息的一组标志。 这些标志与按位 OR 运算结合使用。 如果未应用任何标志,则此成员设置为零。

InterfaceAndOperStatusFlags.HardwareInterface

类型: BOOLEAN 如果网络接口用于硬件,则设置 。

InterfaceAndOperStatusFlags.FilterInterface

类型: BOOLEAN 如果网络接口用于筛选器模块,则设置 。

InterfaceAndOperStatusFlags.ConnectorPresent

类型: BOOLEAN 设置网络接口上是否存在连接器。 如果有物理网络适配器,则会设置此值。

InterfaceAndOperStatusFlags.NotAuthenticated

类型: BOOLEAN 如果未对网络接口的默认端口进行身份验证,则设置 。 如果网络接口未由目标进行身份验证,则表示该网络接口不处于操作模式。 尽管这适用于有线和无线网络连接,但身份验证在无线网络连接中更为常见。

InterfaceAndOperStatusFlags.NotMediaConnected

类型: BOOLEAN 如果网络接口未处于媒体连接状态,则设置 。 如果拔下有线网络的网线,则会设置此值。 对于无线网络,这是为未连接到网络的网络适配器设置的。

InterfaceAndOperStatusFlags.Paused

类型: BOOLEAN 设置网络接口的网络堆栈是否处于暂停或暂停状态。 这并不意味着计算机处于休眠状态。

InterfaceAndOperStatusFlags.LowPower

类型: BOOLEAN 设置网络接口是否处于低功耗状态。

InterfaceAndOperStatusFlags.EndPointInterface

类型: BOOLEAN 设置网络接口是否是终结点设备,而不是连接到网络的真正网络接口。 这可由使用网络基础结构与电脑通信但不提供与外部网络连接的设备(例如智能手机)设置。 这些类型的设备必须设置此标志。

OperStatus

类型: IF_OPER_STATUS

RFC 2863 中定义为 IfOperStatus 的接口的操作状态。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc2863.txt。 此成员可以是 ifdef.h 头文件中定义的 IF_OPER_STATUS 枚举类型的值之一。

含义
IfOperStatusUp
1
接口已启动,并且能够传递数据包。
IfOperStatusDown
2
接口已关闭,没有处于传递数据包的条件。 IfOperStatusDown 状态有两种含义,具体取决于 AdminStatus 成员的值。

如果未将 AdminStatus 设置为 NET_IF_ADMIN_STATUS_DOWN 并且 OperStatus 设置为 IfOperStatusDown ,则假定接口上存在故障条件。

如果 AdminStatus 设置为 IfOperStatusDown,则 ifOperStatus 通常也会设置为 IfOperStatusDownIfOperStatusNotPresent ,并且接口上不一定有故障条件。

IfOperStatusTesting
3
接口处于测试模式。
IfOperStatusUnknown
4
接口的操作状态未知。
IfOperStatusDormant
5
接口实际上并不处于传递数据包的条件, (它未启动) ,而是处于挂起状态,等待某些外部事件。 对于按需接口,此新状态标识接口正在等待事件将其置于 IfOperStatusUp 状态的情况。
IfOperStatusNotPresent
6
IfOperStatusDown 状态的优化,指示相关接口已关闭,因为某些组件通常 (托管系统中不存在硬件设备) 。
IfOperStatusLowerLayerDown
7
IfOperStatusDown 状态的优化。 此新状态指示此接口在一个或多个其他接口上运行,并且此接口已关闭,因为其中一个或多个较低层接口已关闭。

AdminStatus

类型: NET_IF_ADMIN_STATUS

RFC 2863 中定义的接口的管理状态。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc2863.txt。 此成员可以是 ifdef.h 头文件中定义的 NET_IF_ADMIN_STATUS 枚举类型的值之一。

含义
NET_IF_ADMIN_STATUS_UP
1
接口已初始化并启用。 但接口不一定准备好发送和接收网络数据,因为这取决于接口的操作状态。
NET_IF_ADMIN_STATUS_DOWN
2
接口已关闭,此接口不能用于传输或接收网络数据。
NET_IF_ADMIN_STATUS_TESTING
3
接口处于测试模式,无法传输或接收任何网络数据。

MediaConnectState

类型: NET_IF_MEDIA_CONNECT_STATE

接口的连接状态。 此成员可以是 ifdef.h 头文件中定义的 NET_IF_MEDIA_CONNECT_STATE 枚举类型的值之一。

含义
MediaConnectStateUnknown
0
接口的连接状态未知。
MediaConnectStateConnected
1
接口已连接到网络。
MediaConnectStateDisconnected
2
接口未连接到网络。

NetworkGuid

类型: NET_IF_NETWORK_GUID

与接口所属的网络关联的 GUID。

ConnectionType

类型: NET_IF_CONNECTION_TYPE

NDIS 网络接口连接类型。 此成员可以是 ifdef.h 头文件中定义的 NET_IF_CONNECTION_TYPE 枚举类型的值之一。

含义
NET_IF_CONNECTION_DEDICATED
1
连接类型是专用的。 当媒体感知为 TRUE 时,连接会自动启动。 例如,以太网连接是专用的。
NET_IF_CONNECTION_PASSIVE
2
连接类型为被动连接。 远程端必须启动与本地工作站的连接。 例如,RAS 接口是被动的。
NET_IF_CONNECTION_DEMAND
3
连接类型为按需拨号。 此类型的连接是为了响应本地操作 (发送数据包,例如) 。
NET_IF_CONNECTION_MAXIMUM
4
NET_IF_CONNECTION_TYPE枚举类型的可能最大值。 这不是 ConnectionType 成员的法定值。

TransmitLinkSpeed

类型: ULONG64

传输链路的速度(以位/秒为单位)。

ReceiveLinkSpeed

类型: ULONG64

接收链接的速度(以位/秒为单位)。

InOctets

类型: ULONG64

通过此接口接收的无错误的数据的八位字节数。 此值包括单播、广播和多播数据包中的八位字节。

InUcastPkts

类型: ULONG64

通过此接口接收且未出错的单播数据包数。

InNUcastPkts

类型: ULONG64

通过此接口接收且未出错的非单播数据包数。 此值包括广播数据包和多播数据包。

InDiscards

类型: ULONG64

选择丢弃的入站数据包数,即使未检测到任何错误,以防止数据包可传递到更高层协议。

InErrors

类型: ULONG64

由于错误而丢弃的传入数据包数。

InUnknownProtos

类型: ULONG64

由于协议未知而丢弃的传入数据包数。

InUcastOctets

类型: ULONG64

通过此接口在单播数据包中未出错的情况下接收的数据的八位字节数。

InMulticastOctets

类型: ULONG64

通过此接口在多播数据包中未出错的情况下接收的数据的八位字节数。

InBroadcastOctets

类型: ULONG64

通过此接口在广播数据包中未出错的情况下接收的数据的八位字节数。

OutOctets

类型: ULONG64

通过此接口传输的数据的八位字节数(无错误)。 此值包括单播、广播和多播数据包中的八位字节。

OutUcastPkts

类型: ULONG64

通过此接口传输且未出错的单播数据包数。

OutNUcastPkts

类型: ULONG64

通过此接口传输且未出错的非单播数据包数。 此值包括广播数据包和多播数据包。

OutDiscards

类型: ULONG64

丢弃的传出数据包数,即使它们没有错误也是如此。

OutErrors

类型: ULONG64

由于错误而丢弃的传出数据包数。

OutUcastOctets

类型: ULONG64

通过此接口在单播数据包中未出错的情况下传输的数据的八位字节数。

OutMulticastOctets

类型: ULONG64

通过此接口的多播数据包中未出错传输的数据的八位字节数。

OutBroadcastOctets

类型: ULONG64

通过此接口在广播数据包中未出错的情况下传输的数据的八位字节数。

OutQLen

类型: ULONG64

传输队列长度。 当前未使用此字段。

注解

MIB_IF_ROW2结构在 Windows Vista 及更高版本上定义。

Type 字段的值在 Ipifcons.h 头文件中定义。 目前仅支持 类型 成员的说明中列出的可能值。

请注意, Netioapi.h 头文件会自动包含在 Iphlpapi.h 头文件中。 永远不应直接使用 Netioapi.h 头文件。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 netioapi.h (包括 Iphlpapi.h)

另请参阅

GetAdaptersAddresses

GetIfEntry2

GetIfTable2

IP_ADAPTER_ADDRESSES

MIB_IF_TABLE2

NET_LUID