Clearing a VMQ Filter

To free a filter on a receive queue, an overlying driver issues an OID_RECEIVE_FILTER_CLEAR_FILTER set OID request. The InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to an NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS structure.

The protocol driver obtained the filter identifier from an earlier OID_RECEIVE_FILTER_SET_FILTER method OID request. For more information about setting filters, see Setting a VMQ Filter.

A protocol driver must clear all the filters that it set on a queue before it frees the queue. A protocol driver must also clear all the filters that it set on the default queue before it closes its binding to the network adapter.

A miniport driver must not indicate packets on a nondefault queue if it has completed the OID_RECEIVE_FILTER_CLEAR_FILTER OID request to clear the last filter on the queue or if it has completed an OID_RECEIVE_FILTER_FREE_QUEUE OID request to free the queue.