Delen via


OID_RECEIVE_FILTER_SET_FILTER

Een overliggend stuurprogramma geeft een OID-methodeaanvraag van OID_RECEIVE_FILTER_SET_FILTER om een filter in te stellen op een netwerkadapter.

De InformationBuffer lid van de NDIS_OID_REQUEST structuur bevat een aanwijzer naar een aanroeper toegewezen buffer. Deze buffer is opgemaakt om het volgende te bevatten:

Nadat de OID-methodeaanvraag is geretourneerd, bevat de InformationBuffer lid van de NDIS_OID_REQUEST-structuur een aanwijzer naar een NDIS_RECEIVE_FILTER_PARAMETERS-structuur. Als het overliggende stuurprogramma een nieuw ontvangstfilter maakt, werkt NDIS deze structuur bij met een nieuwe filter-id.

Opmerkingen

NDIS-ontvangstfilters worden gebruikt in de volgende NDIS-interfaces:

De OID-methodeaanvraag van OID_RECEIVE_FILTER_SET_FILTER is verplicht voor minipoortstuurprogramma's die ondersteuning bieden voor de NDIS-pakketsamensmelten, SR-IOV of VMQ-interface.

Het bovenliggende stuurprogramma initialiseert de NDIS_RECEIVE_FILTER_PARAMETERS structuur met de aangevraagde filterconfiguratie. NDIS wijst een filter-id toe in de FilterId lid van de NDIS_RECEIVE_FILTER_PARAMETERS-structuur en geeft de methodeaanvraag door aan het onderliggende minipoortstuurprogramma.

Elk filter dat in een ontvangstwachtrij is ingesteld, heeft een unieke filter-id voor een netwerkadapter. De filter-id's worden dus niet gedupliceerd in verschillende wachtrijen die door de netwerkadapter worden beheerd. Wanneer NDIS een OID-aanvraag ontvangt om een filter in te stellen voor een ontvangstwachtrij, worden de filterparameters gecontroleerd. Nadat NDIS de benodigde resources en de filter-id heeft toegewezen, wordt de OID-aanvraag verzonden naar de onderliggende netwerkadapter. Als de netwerkadapter de benodigde software- en hardwarebronnen voor het filter kan toewijzen, wordt de OID-aanvraag voltooid met de retourstatus van NDIS_STATUS_SUCCESS.

Opmerking Vanaf NDIS 6.30 wordt het ontvangstfilter voor pakketsamenkoppeling alleen ondersteund in de standaardwachtrij voor ontvangen van de netwerkadapter. Deze ontvangstwachtrij heeft een id van NDIS_DEFAULT_RECEIVE_QUEUE_ID.

Het minipoortstuurprogramma moet de filter-id's voor de toegewezen ontvangstfilters behouden. NDIS gebruikt de id van een filter in latere OID-aanvragen om de ontvangstfilterparameters te wijzigen of het ontvangstfilter te wissen.

Nadat een minipoortstuurprogramma een OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE aanvraag heeft ontvangen en er filters zijn ingesteld voor de wachtrij, heeft de wachtrij de status Wordt uitgevoerd. In deze status kan het minipoortstuurprogramma indicaties van pakketten in de wachtrij starten door NdisMIndicateReceiveNetBufferListsaan te roepen.

Aanvullende richtlijnen voor de SR-IOV-interface

De volgende punten zijn van toepassing op minipoortstuurprogramma's die ondersteuning bieden voor de SR-IOV-interface:

  • Voor de SR-IOV-interface wordt een ontvangstwachtrij gemaakt op een standaard- of niet-standaard virtuele poort (VPort).

    Opmerking Vanaf Windows Server 2012 ondersteunt de SR-IOV-interface alleen de standaardwachtrij voor ontvangst van een VPort.

    Nadat een SR-IOV VPort is toegewezen via een OID-setaanvraag van OID_NIC_SWITCH_CREATE_VPORT, kunnen te veel stuurprogramma's filters instellen op de VPort met OID-aanvragen van OID_RECEIVE_FILTER_SET_FILTER.

    Opmerking Alleen het overliggende stuurprogramma dat de VPort heeft toegewezen, kan een filter instellen op die VPort.

  • Omdat de standaard-VPort altijd bestaat, kunnen bovenliggende stuurprogramma's altijd een filter instellen op de standaard-VPort.

  • Wanneer de VPort is gemaakt, worden er geen ontvangstfilters ingesteld. In dit geval mag het minipoortstuurprogramma geen ontvangstpakketten op die VPort aangeven voordat het minipoortstuurprogramma een OID-aanvraag van OID_RECEIVE_FILTER_SET_FILTER voor de VPort ontvangt. Nadat deze OID-aanvraag is uitgegeven, kan het minipoortstuurprogramma pakketten op die VPort aangeven.

    Opmerking Als het minipoortstuurprogramma pakketten op een VPort aangeeft terwijl deze een OID-aanvraag van OID_RECEIVE_FILTER_SET_FILTER verwerkt, moet deze de OID-aanvraag voltooien en een NDIS_STATUS_SUCCESS statuscode retourneren.

Aanvullende richtlijnen voor de VMQ-interface

De volgende punten zijn van toepassing op minipoortstuurprogramma's die ondersteuning bieden voor de VMQ-interface:

  • Nadat een VMQ-ontvangstwachtrij is toegewezen, kunnen overliggende stuurprogramma's filters instellen voor de ontvangstwachtrij met OID-aanvragen van OID_RECEIVE_FILTER_SET_FILTER.

    Opmerking Alleen het protocolstuurprogramma dat een ontvangstwachtrij heeft toegewezen, kan een filter voor die wachtrij instellen.

  • Omdat de standaardwachtrij altijd bestaat, kunnen overliggende stuurprogramma's altijd een filter instellen voor de standaardwachtrij. Als de netwerkadapter ondersteuning biedt voor een wachtrij voor neerzetten, kunnen overliggende stuurprogramma's een filter instellen voor de wachtrij voor neerzetten.

    Overliggende stuurprogramma's zijn niet de eigenaar van de standaard- of drop-wachtrijen. Daarom maken alle protocolstuurprogramma's die zijn gebonden aan een netwerkadapter gebruik van de standaard- of drop-wachtrij.

  • Wanneer de ontvangstwachtrij wordt gemaakt, worden er geen ontvangstfilters ingesteld. In dit geval mag het minipoortstuurprogramma geen ontvangstpakketten op die ontvangstwachtrij aangeven voordat het minipoortstuurprogramma een OID-aanvraag van OID_RECEIVE_FILTER_SET_FILTER ontvangt voor de ontvangstwachtrij. Nadat deze OID-aanvraag is uitgegeven, kan het minipoortstuurprogramma pakketten in die ontvangen wachtrij aangeven.

    Opmerking Als het minipoortstuurprogramma pakketten in een wachtrij aangeeft terwijl het een OID-aanvraag van OID_RECEIVE_FILTER_SET_FILTER verwerkt, moet deze de OID-aanvraag voltooien en een NDIS_STATUS_SUCCESS statuscode retourneren.

Statuscodes retourneren

Het minipoortstuurprogramma retourneert een van de volgende statuscodes voor de aanvraag van de OID-methode van OID_RECEIVE_FILTER_SET_FILTER:

NDIS_STATUS_SUCCESS
Het filter is ingesteld voor de wachtrij. De informatiebuffer bevat de bijgewerkte NDIS_RECEIVE_FILTER_PARAMETERS structuur.

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

NDIS_STATUS_INVALID_PARAMETER
Een of meer van de parameters die het opgegeven stuurprogramma te veel heeft opgegeven, is niet geldig.

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

NDIS_STATUS_NOT_SUPPORTED
De NDIS-versie van het minipoortstuurprogramma is een eerdere versie dan 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

NdisMIndicateReceiveNetBufferLists

NDIS_OID_REQUEST

NDIS_RECEIVE_FILTER_PARAMETERS

NET_BUFFER_LIST

NET_BUFFER_LIST_RECEIVE_FILTER_ID

OID_NIC_SWITCH_CREATE_VPORT

OID_RECEIVE_FILTER_CLEAR_FILTER

OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE