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 头文件中。
下表列出了接口类型的常见值,但可能还有其他许多值。
TunnelType
类型: TUNNEL_TYPE
如果 类型 成员 IF_TYPE_TUNNEL,隧道使用的封装方法。 隧道类型由 Internet 分配的名称颁发机构(IANA)定义。 有关详细信息,请参阅 http://www.iana.org/assignments/ianaiftype-mib。 此成员可以是 Ifdef.h 头文件中定义的TUNNEL_TYPE枚举类型的值之一。
MediaType
类型: NDIS_MEDIUM
接口的 NDIS 媒体类型。 此成员可以是 Ntddndis.h 头文件中定义的NDIS_MEDIUM枚举类型中的值之一。
PhysicalMediumType
类型: NDIS_PHYSICAL_MEDIUM
NDIS 物理介质类型。 此成员可以是 Ntddndis.h 头文件中定义的NDIS_PHYSICAL_MEDIUM枚举类型中的值之一。
AccessType
类型: NET_IF_ACCESS_TYPE
接口访问类型。 此成员可以是 Ifdef.h 头文件中定义的NET_IF_ACCESS_TYPE枚举类型的值之一。
DirectionType
类型: NET_IF_DIRECTION_TYPE
接口方向类型。 此成员可以是 Ifdef.h 头文件中定义的NET_IF_DIRECTION_TYPE枚举类型的值之一。
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枚举类型的值之一。
AdminStatus
类型: NET_IF_ADMIN_STATUS
RFC 2863 中定义的接口的管理状态。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc2863.txt。 此成员可以是 Ifdef.h 头文件中定义的NET_IF_ADMIN_STATUS枚举类型的值之一。
| 价值 | Meaning |
|---|---|
|
接口已初始化并启用。 但接口不一定准备好传输和接收网络数据,因为这取决于接口的作状态。 |
|
接口已关闭,此接口不能用于传输或接收网络数据。 |
|
该接口处于测试模式,无法传输或接收任何网络数据。 |
MediaConnectState
类型: NET_IF_MEDIA_CONNECT_STATE
接口的连接状态。 此成员可以是 Ifdef.h 头文件中定义的NET_IF_MEDIA_CONNECT_STATE枚举类型的值之一。
| 价值 | Meaning |
|---|---|
|
接口的连接状态未知。 |
|
该接口连接到网络。 |
|
该接口未连接到网络。 |
NetworkGuid
类型: NET_IF_NETWORK_GUID
与接口所属的网络关联的 GUID。
ConnectionType
类型: NET_IF_CONNECTION_TYPE
NDIS 网络接口连接类型。 此成员可以是 Ifdef.h 头文件中定义的NET_IF_CONNECTION_TYPE枚举类型的值之一。
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) |