OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE
NDIS protocol drivers issue object identifier (OID) method requests of OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE to notify the miniport driver that an allocation has completed for the current batch of receive queues.
The InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to an NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY structure that is followed by an NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS structure for each queue. After a successful return from the OID method request, the InformationBuffer member of the NDIS_OID_REQUEST structure contains a pointer to the same array of structures, and the CompletionStatus member of each NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS structure contains the completion status for each queue.
Remarks
The OID method request of OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE is optional for NDIS 6.20 and later miniport drivers. It is mandatory for miniport drivers that support the virtual machine queue (VMQ) interface.
After allocating one or more receive queues and optionally setting the initial filters, the protocol driver must issue the OID method request of OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE in order to notify the miniport driver that the allocation has completed for the current batch of receive queues. This allows the miniport driver to balance the hardware resources among multiple receive queues; if necessary, it can allocate resources such as shared memory for the receive queues.
After a miniport driver receives an OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE request and it has filters that are set on the queue, the queue is in the Running state. In this state, the miniport driver can start indications of packets in the queue by calling NdisMIndicateReceiveNetBufferLists.
Return Status Codes
The miniport driver returns one of the following status codes for the OID method request of OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE.
Status code | Description |
---|---|
NDIS_STATUS_SUCCESS |
The queue allocation has completed. The information buffer contains the updated NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY structure and parameter structures with the completion status for the queue allocation. |
NDIS_STATUS_PENDING |
The request is pending completion. The final status code and results will be passed to the OID request completion handler of the caller. |
NDIS_STATUS_INVALID_PARAMETER |
One or more of the parameters that the overlying driver provided were not valid. |
NDIS_STATUS_INVALID_LENGTH |
The information buffer was too short. NDIS set the DATA.METHOD_INFORMATION.BytesNeeded member in the NDIS_OID_REQUEST structure to the minimum buffer size that is required. |
NDIS_STATUS_NOT_SUPPORTED |
The NDIS version of the miniport driver is earlier than version 6.20. |
NDIS_STATUS_FAILURE |
The request failed for other reasons. |
Requirements
Version |
Supported in NDIS 6.20 and later. |
Header |
Ntddndis.h (include Ndis.h) |
See also
NdisMIndicateReceiveNetBufferLists