OID_RECEIVE_FILTER_CLEAR_FILTER
过分的驱动程序发出OID_RECEIVE_FILTER_CLEAR_FILTER的 OID 集请求,以清除网络适配器上的接收筛选器。
NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS结构的指针。
注解
NDIS 接收筛选器用于以下 NDIS 接口:
NDIS 数据包合并。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 管理数据包合并接收筛选器。
单根 I/O 虚拟化 (SR-IOV) 。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 在虚拟端口上设置接收筛选器。
虚拟机队列 (VMQ)。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 设置和清除 VMQ 筛选器。
对于支持 NDIS 数据包合并、SR-IOV 或 VMQ 接口的微型端口驱动程序,OID_RECEIVE_FILTER_CLEAR_FILTER的 OID 集请求是必需的。
过度分配的驱动程序(如 NDIS 协议或筛选器驱动程序)使用OID_RECEIVE_FILTER_CLEAR_FILTER集请求来清除以前设置的筛选器。 只有设置接收筛选器的驱动程序才能清除它。
覆盖驱动程序通过将 NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS 结构的 FilterId 成员设置为筛选器的标识符来清除接收筛选器。 驱动程序从 OID_RECEIVE_FILTER_SET_FILTER 的早期 OID 方法请求中获取了筛选器标识符。
有关 NDIS 数据包合并的其他说明
以下几点适用于支持 NDIS 数据包合并的微型端口和过度分配驱动程序:
- 过度分配的驱动程序必须先清除它在微型端口驱动程序上设置的所有接收筛选器,然后才能取消绑定或与驱动程序分离。
SR-IOV 接口的其他准则
以下几点适用于支持 SR-IOV 接口的微型端口和过度驱动程序:
过度分配的驱动程序必须先清除在 SR-IOV VPort 上设置的所有筛选器,然后才能释放 VPort。 在关闭对网络适配器的绑定之前,过度覆盖的驱动程序还必须清除它在默认 VPort 上设置的所有筛选器。
如果微型端口驱动程序已完成OID_RECEIVE_FILTER_CLEAR_FILTER的 OID 请求以清除 VPort 上的最后一个筛选器,则微型端口驱动程序不得指示非默认 VPort 上的数据包。
注意 如果微型端口驱动程序已完成释放 VPort 的 OID 请求 OID_NIC_SWITCH_DELETE_VPORT ,则不得指示非默认 VPort 上的数据包。
VMQ 接口的其他准则
以下几点适用于支持 VMQ 接口的微型端口和上放驱动程序:
过度分配的驱动程序必须清除它在 VMQ 接收队列上设置的所有筛选器,然后才能释放该队列。 在关闭与网络适配器的绑定之前,过度分配的驱动程序还必须清除它在默认或删除队列上设置的所有筛选器。
如果微型端口驱动程序已完成 OID_RECEIVE_FILTER_CLEAR_FILTER 的 OID 请求以清除接收队列上的最后一个筛选器,则它不得指示接收队列上的数据包。
注意 如果微型端口驱动程序已完成 OID_RECEIVE_FILTER_FREE_QUEUE 的 OID 请求以释放接收队列,则也不得指示接收队列上的数据包。
返回状态代码
微型端口驱动程序的 MiniportOidRequest 函数为此请求返回以下值之一:
术语 | 说明 |
---|---|
NDIS_STATUS_SUCCESS |
微型端口驱动程序成功完成了请求。 |
NDIS_STATUS_PENDING |
微型端口驱动程序将以异步方式完成请求。 微型端口驱动程序完成所有处理后,它必须通过调用 NdisMOidRequestComplete 函数、传递 Status 参数NDIS_STATUS_SUCCESS来使请求成功。 |
NDIS_STATUS_NOT_ACCEPTED |
微型端口适配器意外移除。 |
NDIS 为此请求返回以下状态代码之一:
NDIS_STATUS_SUCCESS
已成功清除指定的筛选器。
NDIS_STATUS_PENDING
请求正在等待完成。 请求完成后,NDIS 会将最终状态代码和结果传递给调用方 OID 请求完成处理程序。
NDIS_STATUS_FILE_NOT_FOUND
筛选器标识符无效。
NDIS_STATUS_INVALID_LENGTH
信息缓冲区太小。 NDIS 设置数据。SET_INFORMATION。NDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。
要求
版本 |
在 NDIS 6.20 及更高版本中受支持。 |
标头 |
Ntddndis.h (包括 Ndis.h) |