OID_GEN_NETWORK_LAYER_ADDRESSES
作为一个集,OID_GEN_NETWORK_LAYER_ADDRESSES OID 通知基础微型端口驱动程序和其他分层驱动程序与绑定实例关联的网络层地址列表。
版本信息
Windows Vista 和更高版本的 Windows
。
注解
绑定实例是调用传输与通过调用 NdisOpenAdapterEx 设置的驱动程序之间的绑定。 传输使用TRANSPORT_ADDRESS和TA_ADDRESS结构来通知基础微型端口驱动程序和其他分层驱动程序有关网络层地址列表的信息。 微型端口驱动程序和其他分层驱动程序使用兼容的NETWORK_ADDRESS_LIST和NETWORK_ADDRESS结构(定义如下)在绑定接口上设置网络层地址列表。
typedef struct _NETWORK_ADDRESS_LIST {
LONG AddressCount;
USHORT AddressType;
NETWORK_ADDRESS Address[1];
} NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
此结构的成员包含以下信息:
AddressCount
指定地址成员的数组中列出的网络层 地址 数。
AddressType
指定发送此 OID 的协议类型。 仅当 AddressCount 成员设置为零时,此成员才有效。 AddressCount 成员设置为零,以通知微型端口驱动程序或其他分层驱动程序清除绑定接口上的网络层地址列表。 协议可以是以下值之一:
NDIS_PROTOCOL_ID_TCP_IP
TCP/IP 协议
NDIS_PROTOCOL_ID_IPX
NetWare IPX 协议
NDIS_PROTOCOL_ID_NBF
NetBIOS 协议
地址
NETWORK_ADDRESS 类型的网络层地址数组。 AddressCount 成员指定此数组中的元素数。
typedef struct _NETWORK_ADDRESS {
USHORT AddressLength;
USHORT AddressType;
UCHAR Address[1];
} NETWORK_ADDRESS, *PNETWORK_ADDRESS;
此结构的成员包含以下信息:
AddressLength
指定此网络层地址的大小(以字节为单位)。 Address 成员包含指定此地址的字节数组。
AddressType
指定发送此 OID 和此网络层地址的协议类型。 仅当 NETWORK_ADDRESS_LIST 结构中的 AddressCount 成员设置为非零值时,此成员才有效。 NETWORK_ADDRESS_LIST 中的 AddressCount 成员设置为非零值,以通知微型端口驱动程序或其他分层驱动程序更改绑定接口上的网络层地址列表。 协议类型在前面的列表中定义。
地址
指定此网络层地址的字节数组。 AddressLength 成员指定此数组中的字节数。
传输可以调用 NdisOidRequest 函数,并可以传递填充 OID_GEN_NETWORK_LAYER_ADDRESSES 代码的NDIS_OID_REQUEST结构。 此调用通知绑定实例与该实例关联的地址发生更改。 在此调用中,传输还会传递 NdisBindingHandle 参数中的绑定实例。 绑定实例是在传输与基础微型端口驱动程序或其他分层驱动程序之间设置的绑定。 对于此调用,传输应使用指向TRANSPORT_ADDRESS结构的指针填充 NDIS_OID_REQUEST 的 InformationBuffer 成员。 TRANSPORT_ADDRESS对应于NETWORK_ADDRESS_LIST结构,应包含网络层地址列表。
假设传输地址通过中间驱动程序向下传递到基础微型端口驱动程序。 如果中间驱动程序还需要地址,则应在将地址传递给基础微型端口驱动程序之前记下这些地址。 基础微型端口驱动程序(尤其是旧驱动程序)可以返回状态值NDIS_STATUS_NOT_SUPPORTED或NDIS_STATUS_SUCCESS。 基础微型端口驱动程序将操作的状态传播到传输中。 如果中间驱动程序必须继续接收地址通知,并且如有必要,中间驱动程序应将状态更改为NDIS_STATUS_SUCCESS。否则,传输可能会将NDIS_STATUS_NOT_SUPPORTED解释为指示基础微型端口驱动程序不需要传输问题额外的地址更新。 如果返回NDIS_STATUS_SUCCESS,传输方有义务继续通知基础驱动程序关联地址的任何更改,包括添加和删除地址。
协议可以将 TRANSPORT_ADDRESS 的 AddressCount 成员设置为零,以通知微型端口驱动程序或其他分层驱动程序清除绑定接口上的网络层地址列表。 如果 AddressCount 设置为零,则 NETWORK_ADDRESS_LIST 中的 AddressType 成员有效,NETWORK_ADDRESS结构中的 AddressType 成员无效。 另一方面,协议可以将 AddressCount 设置为非零值,以通知微型端口驱动程序或其他分层驱动程序更改绑定接口上的网络层地址列表。 在这种情况下,NETWORK_ADDRESS_LIST中的 AddressType 成员无效,NETWORK_ADDRESS结构中的 AddressType 成员有效。
要求
标头 |
Ntddndis.h (包括 Ndis.h) |