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.
NDIS-protocolstuurprogramma's geven object-id (OID) aanvragen van OID_RECEIVE_FILTER_FREE_QUEUE om een ontvangstwachtrij vrij te maken.
De InformationBuffer lid van de NDIS_OID_REQUEST-structuur bevat een aanwijzer naar een NDIS_RECEIVE_QUEUE_FREE_PARAMETERS structuur met een wachtrij-id van het type NDIS_RECEIVE_QUEUE_ID.
Opmerkingen
De OID-setaanvraag van OID_RECEIVE_FILTER_FREE_QUEUE is optioneel voor NDIS 6.20 en hoger minipoortstuurprogramma's. Dit is verplicht voor minipoortstuurprogramma's die ondersteuning bieden voor de wachtrijinterface van de virtuele machine.
Nadat een overliggend stuurprogramma de OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID heeft opgegeven om een ontvangstwachtrij toe te wijzen, geeft het de OID_RECEIVE_FILTER_FREE_QUEUE OID uit om de ontvangstwachtrij vrij te maken.
Wanneer NDIS een minipoortstuurprogramma aanvraagt om een VMQ-ontvangstwachtrij vrij te maken, volgt deze stappen:
De netwerkadapter stopt de DMA-overdracht van gegevens om buffers te ontvangen die zijn gekoppeld aan de ontvangstwachtrij, waarna de wachtrij de status DMA Gestopt moet invoeren. De netwerkadapter heeft waarschijnlijk de DMA-activiteit gestopt toen deze de OID_RECEIVE_FILTER_CLEAR_FILTER OID-aanvraag ontving om het laatste setfilter in de ontvangstwachtrij te wissen.
Het minipoortstuurprogramma genereert een NDIS_STATUS_RECEIVE_QUEUE_STATE statusaanduiding met de QueueState lid van de NDIS_RECEIVE_QUEUE_STATE structuur ingesteld op NdisReceiveQueueOperationalStateDmaStopped om NDIS te melden dat de DMA-overdracht is gestopt.
Het minipoortstuurprogramma wacht tot alle aangegeven pakketten worden ontvangen voordat die wachtrij wordt geretourneerd naar het minipoortstuurprogramma.
Het minipoortstuurprogramma maakt alle gedeelde geheugen vrij die is toegewezen voor de ontvangen buffers van de netwerkadapter die aan de wachtrij zijn gekoppeld door NdisFreeSharedMemory-aan te roepen.
Het minipoortstuurprogramma voltooit de OID_RECEIVE_FILTER_FREE_QUEUE OID-aanvraag om de ontvangstwachtrij vrij te maken.
Miniportstuurprogramma's roepen de NdisFreeSharedMemory- functie aan om gedeeld geheugen vrij te maken voor een wachtrij. Als het minipoortstuurprogramma het gedeelde geheugen voor een niet-standaardwachtrij heeft toegewezen, maakt het stuurprogramma het gedeelde geheugen vrij in de context van de OID_RECEIVE_FILTER_FREE_QUEUE OID terwijl de wachtrij wordt vrijgemaakt. Miniportstuurprogramma's maken gedeeld geheugen vrij die ze hebben toegewezen voor de standaardwachtrij in de context van de MiniportHaltEx functie.
Een overliggend stuurprogramma moet alle filters die in een wachtrij zijn ingesteld, vrijmaken voordat de wachtrij wordt vrijgemaakt. Bovendien moet een overliggend stuurprogramma alle ontvangen wachtrijen die zijn toegewezen aan een netwerkadapter vrijmaken voordat de functie NdisCloseAdapterEx wordt aangeroepen om een binding met de netwerkadapter te sluiten. NDIS maakt alle wachtrijen die zijn toegewezen op een netwerkadapter vrij voordat de minipoortstuurprogramma MiniportHaltEx functie aanroept.
Statuscodes retourneren
De MiniportOidRequest-functie van het minipoortstuurprogramma retourneert een van de volgende waarden voor deze aanvraag:
Term | Beschrijving |
---|---|
NDIS_STATUS_SUCCESS |
Het minipoortstuurprogramma heeft de aanvraag voltooid. |
NDIS_STATUS_PENDING |
Het minipoortstuurprogramma voltooit de aanvraag asynchroon. Nadat het minipoortstuurprogramma alle verwerking heeft voltooid, moet deze de aanvraag voltooien door de NdisMOidRequestComplete-functie aan te roepen en NDIS_STATUS_SUCCESS door te geven voor de parameter Status. |
NDIS_STATUS_NOT_ACCEPTED |
Het minipoortstuurprogramma wordt opnieuw ingezet. |
NDIS_STATUS_REQUEST_ABORTED |
Het minipoortstuurprogramma heeft de aanvraag niet meer verwerkt. NDIS heeft bijvoorbeeld de functie MiniportResetEx genoemd. |
NDIS retourneert een van de volgende statuscodes voor deze aanvraag:
Statuscode | Beschrijving |
---|---|
NDIS_STATUS_SUCCESS |
De aangevraagde wachtrij is vrijgemaakt. |
NDIS_STATUS_PENDING |
De aanvraag is in behandeling. NDIS geeft de laatste statuscode en resultaten door aan de voltooiingshandler van de OID-aanvraag voor de aanroeper nadat de aanvraag is voltooid. |
NDIS_STATUS_INVALID_PARAMETER |
De wachtrij-id is ongeldig. |
NDIS_STATUS_INVALID_LENGTH |
De informatiebuffer is 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. |
Eisen
Versie |
Ondersteund in NDIS 6.20 en hoger. |
Rubriek |
Ntddndis.h (inclusief Ndis.h) |
Zie ook
NDIS_RECEIVE_QUEUE_FREE_PARAMETERS