MIB_IF_ROW2结构 (netioapi.h)

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

Syntax

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;

Members

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-mib。 接口类型的可能值列在 Ipifcons.h 头文件中。

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

价值 Meaning
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

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

价值 Meaning
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枚举类型中的值之一。

价值 Meaning
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枚举类型中的值之一。

价值 Meaning
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
数据包通过符合 Native 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枚举类型的值之一。

价值 Meaning
NET_IF_ACCESS_LOOPBACK
1
环回访问类型。 此访问类型指示接口以接收数据的形式环回传输数据。
NET_IF_ACCESS_BROADCAST
2
包括以太网的 LAN 访问类型。 此访问类型指示接口为多播或广播服务提供本机支持。
注意具有 NdisMedium802_3 MediaType 的移动宽带接口使用此访问类型。
 
NET_IF_ACCESS_POINT_TO_POINT
3
支持 CoNDIS/WAN 的点到点访问,非广播多访问接口(NBMA)接口除外。
注意具有 NdisMediumWirelessWanMediaType 的移动宽带接口使用此访问类型。
 
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枚举类型的值之一。

价值 Meaning
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枚举类型的值之一。

价值 Meaning
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枚举类型的值之一。

价值 Meaning
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枚举类型的值之一。

价值 Meaning
MediaConnectStateUnknown
0
接口的连接状态未知。
MediaConnectStateConnected
1
该接口连接到网络。
MediaConnectStateDisconnected
2
该接口未连接到网络。

NetworkGuid

类型: NET_IF_NETWORK_GUID

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

ConnectionType

类型: NET_IF_CONNECTION_TYPE

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

价值 Meaning
NET_IF_CONNECTION_DEDICATED
1
连接类型专用。 当媒体感知为 TRUE 时,连接会自动启动。 例如,以太网连接专用。
NET_IF_CONNECTION_PASSIVE
2
连接类型是被动的。 远程端必须启动到本地工作站的连接。 例如,RAS 接口是被动的。
NET_IF_CONNECTION_DEMAND
3
连接类型为 demand-dial。 此类型的连接是为了响应本地作(例如发送数据包)。
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 头文件。

要求

Requirement 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
Header netioapi.h (包括 Iphlpapi.h)

另请参阅

GetAdaptersAddresses

GetIfEntry2

GetIfTable2

IP_ADAPTER_ADDRESSES

MIB_IF_TABLE2

NET_LUID