OID_RECEIVE_FILTER_ENUM_FILTERS
覆盖驱动程序发出OID_RECEIVE_FILTER_ENUM_FILTERS的 OID 方法请求,以获取在网络适配器上配置的所有筛选器的列表。
NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向 NDIS_RECEIVE_FILTER_INFO_ARRAY 结构的指针。
从 OID 方法请求成功返回后,NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向缓冲区的指针。 此缓冲区的格式设置为包含以下内容:
一个NDIS_RECEIVE_FILTER_INFO_ARRAY结构,它指定当前在微型端口驱动程序上配置的接收筛选器的列表。
NDIS_RECEIVE_FILTER_INFO 结构的数组。 每个结构指定当前在微型端口驱动程序上配置的接收筛选器的参数。
注解
NDIS 接收筛选器用于以下 NDIS 接口:
NDIS 数据包合并。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 管理数据包合并接收筛选器。
单根 I/O 虚拟化 (SR-IOV) 。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 在虚拟端口上设置接收筛选器。
虚拟机队列 (VMQ)。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 设置和清除 VMQ 筛选器。
过分的驱动程序或应用程序发出OID_RECEIVE_FILTER_ENUM_FILTERS的 OID 方法请求,以枚举在网络适配器上设置的接收筛选器。 这包括在 SR-IOV 虚拟端口 (VPort) 或 VMQ 接收队列上设置的接收筛选器。
NDIS 数据包合并接口的其他准则
从 Windows Server 2012 开始,NDIS 数据包合并仅支持网络适配器的默认接收队列。
若要枚举数据包合并接收筛选器,覆盖驱动程序必须将NDIS_RECEIVE_FILTER_INFO_ARRAY结构的 QueueId 成员设置为NDIS_DEFAULT_RECEIVE_QUEUE_ID。
SR-IOV 接口的其他准则
从 Windows Server 2012 开始,SR-IOV 接口仅支持虚拟端口 (VPort) 的默认接收队列。
若要枚举 VPort 接收筛选器,覆盖驱动程序必须将 NDIS_RECEIVE_FILTER_INFO_ARRAY 结构的 QueueId 成员设置为NDIS_DEFAULT_RECEIVE_QUEUE_ID。
VMQ 接口的其他准则
过分的驱动程序可以发出OID_RECEIVE_FILTER_ENUM_FILTERS的 OID 方法请求,以枚举在 VMQ 接收队列上设置的接收筛选器。 当 overlying 驱动程序初始化 NDIS_RECEIVE_FILTER_INFO_ARRAY 结构时,它会将 QueueId 成员设置为以下值之一:
非默认接收队列的队列标识符值。 overlying 驱动程序从 OID_RECEIVE_FILTER_ALLOCATE_QUEUE 的早期 OID 方法请求或 OID_RECEIVE_FILTER_ENUM_QUEUES的 OID 查询请求中获取了队列标识符输入值。
NDIS_DEFAULT_RECEIVE_QUEUE_ID 的队列标识符值,该值指定默认接收队列。
返回状态代码
NDIS 处理微型端口驱动程序OID_RECEIVE_FILTER_ENUM_FILTERS的 OID 方法请求,并返回以下状态代码之一:
NDIS_STATUS_SUCCESS
请求已成功完成。 InformationBuffer 指向NDIS_RECEIVE_FILTER_INFO_ARRAY结构。
NDIS_STATUS_PENDING
请求正在等待完成。 请求完成后,NDIS 会将最终状态代码和结果传递给调用方 OID 请求完成处理程序。
NDIS_STATUS_INVALID_LENGTH
信息缓冲区太短。 NDIS 设置数据。QUERY_INFORMATION。NDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。
NDIS_STATUS_FAILURE
由于其他原因,请求失败。
要求
版本 |
在 NDIS 6.20 及更高版本中受支持。 |
标头 |
Ntddndis.h (包括 Ndis.h) |
另请参阅
NDIS_RECEIVE_FILTER_INFO_ARRAY
OID_RECEIVE_FILTER_ALLOCATE_QUEUE