Obtaining and Updating VM Queue Parameters
An overlying driver can set the configuration parameters of a VM queue after it is allocated. Also, an overlying driver or application can obtain the current parameters for a queue and parameters for the filters that are set on a queue.
To change the current configuration parameters of a queue, overlying drivers can use the OID_RECEIVE_FILTER_QUEUE_PARAMETERS set OID request. The overlying driver provides a pointer to an NDIS_RECEIVE_QUEUE_PARAMETERS structure in the InformationBuffer member of the NDIS_OID_REQUEST structure.
The NDIS_RECEIVE_QUEUE_PARAMETERS structure is used in the OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID and the OID_RECEIVE_FILTER_QUEUE_PARAMETERS OID. For more information about allocating queues, see Allocating a VM Queue.
To get the current configuration parameters of a queue, overlying drivers can use the OID_RECEIVE_FILTER_QUEUE_PARAMETERS method OID request. The InformationBuffer member of the NDIS_OID_REQUEST structure initially contains a pointer to an NDIS_RECEIVE_QUEUE_PARAMETERS structure with a queue identifier of type NDIS_RECEIVE_QUEUE_ID. After a successful return from the OID method request, the InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to an NDIS_RECEIVE_QUEUE_PARAMETERS structure.
NDIS handles the method request for miniport drivers. Therefore, the OID_RECEIVE_FILTER_QUEUE_PARAMETERS method OID request is not requested for miniport drivers. NDIS obtained the information from an internal cache of the data that it received from the OID_RECEIVE_FILTER_ALLOCATE_QUEUE and OID_RECEIVE_FILTER_QUEUE_PARAMETERS OID requests.
To get the current configuration parameters of a filter on a receive queue, overlying drivers can use the OID_RECEIVE_FILTER_PARAMETERS method OID request. The InformationBuffer member of the NDIS_OID_REQUEST structure initially contains a pointer to an NDIS_RECEIVE_FILTER_PARAMETERS structure. NDIS uses the FilterId member in the input structure to identify the filter. After a successful return from the method request, the InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to an updated NDIS_RECEIVE_FILTER_PARAMETERS structure.
NDIS handles the OID_RECEIVE_FILTER_PARAMETERS method OID request for miniport drivers. NDIS obtained the information from an internal cache of the data that it received from the OID_RECEIVE_FILTER_SET_FILTER OID request.
Overlying drivers can use the OID_RECEIVE_FILTER_PARAMETERS method OID request to get the configuration parameters for a filter on a receive queue.
The overlying driver obtained the filter identifier from an earlier OID_RECEIVE_FILTER_SET_FILTER method OID request or from the OID_RECEIVE_FILTER_ENUM_FILTERS OID request. Only drivers can use the OID_RECEIVE_FILTER_SET_FILTER request.
An application obtained the filter identifier from the OID_RECEIVE_FILTER_ENUM_FILTERS OID request.