OID_RECEIVE_FILTER_CURRENT_CAPABILITIES
过分的驱动程序发出OID_RECEIVE_FILTER_CURRENT_CAPABILITIES的 OID 查询请求,以获取网络适配器当前启用的接收筛选功能。
从 OID 查询请求成功返回后,NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向 NDIS_RECEIVE_FILTER_CAPABILITIES 结构的指针。
注解
NDIS 接收筛选器用于以下 NDIS 接口:
NDIS 数据包合并。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 管理数据包合并接收筛选器。
单根 I/O 虚拟化 (SR-IOV) 。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 在虚拟端口上设置接收筛选器。
虚拟机队列 (VMQ)。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 设置和清除 VMQ 筛选器。
从 NDIS 6.20 开始,微型端口驱动程序在调用其 MiniportInitializeEx 函数时注册当前启用的网络适配器的接收筛选硬件功能。 微型端口驱动程序按照以下步骤注册这些功能:
驱动程序使用当前启用的接收筛选硬件功能初始化 NDIS_RECEIVE_FILTER_CAPABILITIES 结构。
驱动程序初始化 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 结构,并将 CurrentReceiveFilterCapabilities 成员设置为指向 NDIS_RECEIVE_FILTER_CAPABILITIES 结构的指针。
微型端口驱动程序调用 NdisMSetMiniportAttributes 函数,并将 MiniportAttributes 参数设置为指向 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 结构的指针。
过度使用协议和筛选器驱动程序不必发出OID_RECEIVE_FILTER_CURRENT_CAPABILITIES的 OID 查询请求。 NDIS 通过以下方式为这些驱动程序提供当前启用的接收筛选功能:
在绑定操作期间,NDIS 为NDIS_BIND_PARAMETERS结构的ReceiveFilterCapabilities 成员中的协议驱动程序提供基础网络适配器当前启用的接收筛选功能。
NDIS 提供基础网络适配器当前启用的接收筛选功能,以在附加操作期间在 NDIS_FILTER_ATTACH_PARAMETERS 结构的 ReceiveFilterCapabilities 成员中过度筛选驱动程序。
返回状态代码
NDIS 处理微型端口驱动程序OID_RECEIVE_FILTER_CURRENT_CAPABILITIES的 OID 查询请求,并返回以下状态代码之一:
NDIS_STATUS_SUCCESS
请求已成功完成。 InformationBuffer 指向NDIS_RECEIVE_FILTER_CAPABILITIES结构。
NDIS_STATUS_PENDING
请求正在等待完成。 请求完成后,NDIS 会将最终状态代码和结果传递给调用方 OID 请求完成处理程序。
NDIS_STATUS_INVALID_LENGTH
信息缓冲区太短。 NDIS 设置数据。QUERY_INFORMATION。NDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。
NDIS_STATUS_NOT_SUPPORTED
网络适配器不支持接收筛选。
NDIS_STATUS_FAILURE
由于其他原因,请求失败。
要求
版本 |
在 NDIS 6.20 及更高版本中受支持。 |
标头 |
Ntddndis.h (包括 Ndis.h) |