OID_RECEIVE_FILTER_CLEAR_FILTER
过度应用驱动程序发出 OID 集OID_RECEIVE_FILTER_CLEAR_FILTER请求以清除网络适配器上的接收筛选器。
NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向 NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS 结构的指针。
言论
NDIS 接收筛选器用于以下 NDIS 接口:
NDIS 数据包合并。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 管理数据包合并接收筛选器。
单根 I/O 虚拟化(SR-IOV)。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 在虚拟端口上设置接收筛选器。
虚拟机队列(VMQ)。 有关如何在此接口中使用接收筛选器的详细信息,请参阅 设置和清除 VMQ 筛选器。
支持 NDIS 数据包合并、SR-IOV 或 VMQ 接口的微型端口驱动程序必须使用 OID 集请求OID_RECEIVE_FILTER_CLEAR_FILTER。
过度分配的驱动程序(例如 NDIS 协议或筛选器驱动程序)使用OID_RECEIVE_FILTER_CLEAR_FILTER集请求来清除以前设置的筛选器。 只有设置接收筛选器的驱动程序才能清除它。
过度的驱动程序通过将 NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS 结构的 FilterId 成员设置为筛选器的标识符来清除接收筛选器。 驱动程序从先前的 OID 方法请求中获取了 OID_RECEIVE_FILTER_SET_FILTER的筛选器标识符。
有关 NDIS 数据包合并的其他说明
以下几点适用于支持 NDIS 数据包合并的微型端口和过度驱动因素:
- 过度分配的驱动程序必须清除它在微型端口驱动程序上设置的所有接收筛选器,然后才能取消绑定或分离驱动程序。
SR-IOV 接口的其他准则
以下几点适用于支持 SR-IOV 接口的微型端口和过度驱动程序:
过度分配的驱动程序必须清除它在 SR-IOV VPort 上设置的所有筛选器,然后才能释放 VPort。 过度分配的驱动程序还必须清除它在默认 VPort 上设置的所有筛选器,然后再将其绑定到网络适配器。
微型端口驱动程序不得指示非默认 VPort 上的数据包(如果已完成 OID_RECEIVE_FILTER_CLEAR_FILTER 的 OID 请求以清除 VPort 上的最后一个筛选器)。
注意 微型端口驱动程序也不能指示非默认 VPort 上的数据包(如果它已完成 OID_NIC_SWITCH_DELETE_VPORT 的 OID 请求以释放 VPort)。
VMQ 接口的其他准则
以下几点适用于支持 VMQ 接口的微型端口和过度驱动程序:
过度分配的驱动程序必须清除在 VMQ 接收队列上设置的所有筛选器,然后才能释放队列。 过度放置驱动程序还必须清除它在默认或删除队列上设置的所有筛选器,然后再将其绑定到网络适配器。
如果微型端口驱动程序已完成 OID_RECEIVE_FILTER_CLEAR_FILTER的 OID 请求,则不能指示接收队列上的数据包,以清除接收队列上的最后一个筛选器。
注意 微型端口驱动程序在已完成 OID OID_RECEIVE_FILTER_FREE_QUEUE 请求以释放接收队列时,也不得指示接收队列上的数据包。
返回状态代码
微型端口驱动程序的 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) |