Delen via


OID_RECEIVE_FILTER_ALLOCATE_QUEUE

Overlysing drivers issue object identifier (OID) method requests of OID_RECEIVE_FILTER_ALLOCATE_QUEUE to allocate a queue that has an initial set configuration parameters.

De InformationBuffer lid van de NDIS_OID_REQUEST-structuur bevat een aanwijzer naar een NDIS_RECEIVE_QUEUE_PARAMETERS structuur. Nadat de OID-methodeaanvraag is geretourneerd, bevat de InformationBuffer lid van de NDIS_OID_REQUEST-structuur een aanwijzer naar een NDIS_RECEIVE_QUEUE_PARAMETERS structuur met een nieuwe wachtrij-id.

Opmerkingen

De OID-methodeaanvraag van OID_RECEIVE_FILTER_ALLOCATE_QUEUE is optioneel voor NDIS 6.20- en hoger minipoortstuurprogramma's. Het is verplicht voor minipoortstuurprogramma's die ondersteuning bieden voor de VMQ-interface (Virtual Machine Queue).

Het overliggende stuurprogramma initialiseert de NDIS_RECEIVE_QUEUE_PARAMETERS structuur met de aangevraagde wachtrijconfiguratie. NDIS wijst een wachtrij-id toe aan de QueueId lid van de NDIS_RECEIVE_QUEUE_PARAMETERS-structuur en geeft de methodeaanvraag door aan het minipoortstuurprogramma.

Opmerking Het overliggende stuurprogramma kan de NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION en NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED vlaggen instellen in de Vlaggen lid van de NDIS_RECEIVE_QUEUE_PARAMETERS structuur. De andere vlaggen worden niet gebruikt voor wachtrijtoewijzing.

Nadat een minipoortstuurprogramma is uitgegeven, wordt een OID-aanvraag van OID_RECEIVE_FILTER_ALLOCATE_QUEUE verzonden en verwerkt, heeft de wachtrij de status Onderbroken.

Het overliggende stuurprogramma moet de wachtrij-id gebruiken die NDIS biedt in volgende OID-aanvragen, bijvoorbeeld om de wachtrijparameters te wijzigen of de wachtrij vrij te maken. De wachtrij-id wordt ook opgenomen in de out-of-band-gegevens (OOB) op alle NET_BUFFER_LIST structuren die aan de wachtrij zijn gekoppeld. Stuurprogramma's gebruiken de macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID om de wachtrij-id op te halen in een NET_BUFFER_LIST structuur.

Wanneer NDIS een OID-aanvraag ontvangt om een ontvangstwachtrij toe te wijzen, worden de wachtrijparameters gecontroleerd. Nadat NDIS de benodigde resources en de wachtrij-id heeft toegewezen, wordt de OID-aanvraag verzonden naar het onderliggende minipoortstuurprogramma. De wachtrij-id is uniek voor de bijbehorende netwerkadapter.

Als het minipoortstuurprogramma de benodigde software- en hardwarebronnen voor de ontvangstwachtrij kan toewijzen, wordt de OID-aanvraag voltooid door NDIS_STATUS_SUCCESSte retourneren.

Het minipoortstuurprogramma moet de wachtrij-id's voor de toegewezen wachtrijen behouden. NDIS gebruikt de wachtrij-id van een ontvangstwachtrij voor volgende aanroepen naar het minipoortstuurprogramma om een ontvangstfilter in te stellen op de ontvangstwachtrij, de parameters voor de ontvangstwachtrij te wijzigen of de ontvangstwachtrij vrij te maken.

Nadat een overliggend stuurprogramma een of meer wachtrijen heeft toegewezen en eventueel de eerste filters heeft ingesteld, moet het OID-aanvragen instellen OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID-aanvragen instellen om het minipoortstuurprogramma op de hoogte te stellen dat de toewijzing is voltooid voor de huidige batch met ontvangstwachtrijen.

Het minipoortstuurprogramma mag geen pakketten in een ontvangstwachtrij bewaren als er geen filters zijn ingesteld voor die wachtrij. Als een wachtrij nooit filters heeft ingesteld of als alle filters zijn gewist, moet de wachtrij leeg zijn en moeten alle pakketten worden verwijderd. Dat wil gezegd, de pakketten worden niet aangegeven op de stuurprogrammastack of bewaard in de wachtrij.

Overliggende stuurprogramma's gebruiken OID-aanvragen van OID_RECEIVE_FILTER_FREE_QUEUE om wachtrijen toe te wijzen die ze toewijzen.

Statuscodes retourneren

NDIS of het minipoortstuurprogramma retourneert een van de volgende statuscodes voor de aanvraag van de OID-methode van OID_RECEIVE_FILTER_ALLOCATE_QUEUE.

Statuscode Beschrijving

NDIS_STATUS_SUCCESS

De wachtrij is toegewezen. De informatiebuffer bevat de bijgewerkte NDIS_RECEIVE_QUEUE_PARAMETERS structuur.

NDIS_STATUS_PENDING

De aanvraag is in behandeling. De laatste statuscode en resultaten worden doorgegeven aan een OID-aanvraagvoltooiingshandler van de aanroeper.

NDIS_STATUS_INVALID_PARAMETER

Een of meer van de parameters die door het opgegeven stuurprogramma te veel zijn opgegeven, zijn ongeldig.

NDIS_STATUS_INVALID_LENGTH

De informatiebuffer was te kort. NDIS stelt de DATA-in.METHOD_INFORMATION.lid van BytesNeeded in de NDIS_OID_REQUEST-structuur tot de minimale buffergrootte die is vereist.

NDIS_STATUS_NOT_SUPPORTED

De NDIS-versie van het minipoortstuurprogramma is ouder dan versie 6.20.

NDIS_STATUS_FAILURE

De aanvraag is om andere redenen mislukt.

Eisen

Versie

Ondersteund in NDIS 6.20 en hoger.

Rubriek

Ntddndis.h (inclusief Ndis.h)

Zie ook

NDIS_OID_REQUEST

NET_BUFFER_LIST

NET_BUFFER_LIST_RECEIVE_QUEUE_ID

OID_RECEIVE_FILTER_FREE_QUEUE

OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE

NDIS_RECEIVE_QUEUE_PARAMETERS