Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
Een NDIS_RECEIVE_FILTER_PARAMETERS structuur die de parameters voor een NDIS-ontvangstfilter specificeert.
Een matrix van NDIS_RECEIVE_FILTER_FIELD_PARAMETERS structuren die het filtertestcriterium voor een veld in een netwerkpakketheader specificeert.
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:
NDIS Packet Coalescing. Zie Ontvangen filters beherenvoor meer informatie over het gebruik van ontvangstfilters in deze interface.
I/O-virtualisatie met één hoofdmap (SR-IOV). Zie Een ontvangstfilter instellen op een virtuele poortvoor meer informatie over het gebruik van ontvangstfilters in deze interface.
VMQ (Virtual Machine Queue). Zie VmQ-filters instellen en wissenvoor meer informatie over het gebruik van ontvangstfilters in deze interface.
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_RECEIVE_FILTER_PARAMETERS
NET_BUFFER_LIST_RECEIVE_FILTER_ID