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-mib。 Ipifcons.h 头文件中列出了接口类型的可能值。
下表列出了接口类型的常见值,尽管可能还有许多其他值。
TunnelType
类型: TUNNEL_TYPE
如果 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 枚举类型的值之一。
值 | 含义 |
---|---|
|
接口已初始化并启用。 但接口不一定准备好发送和接收网络数据,因为这取决于接口的操作状态。 |
|
接口已关闭,此接口不能用于传输或接收网络数据。 |
|
接口处于测试模式,无法传输或接收任何网络数据。 |
MediaConnectState
类型: NET_IF_MEDIA_CONNECT_STATE
接口的连接状态。 此成员可以是 ifdef.h 头文件中定义的 NET_IF_MEDIA_CONNECT_STATE 枚举类型的值之一。
值 | 含义 |
---|---|
|
接口的连接状态未知。 |
|
接口已连接到网络。 |
|
接口未连接到网络。 |
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 头文件。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
标头 | netioapi.h (包括 Iphlpapi.h) |