Delen via


Beheer van Buffers door Protocolstuurprogramma's

Een protocolstuurprogramma moet NET_BUFFER_LIST structuurgroepen en NET_BUFFER structuurgroepen beheren voor verzendbewerkingen. Als u deze pools wilt maken, roepen stuurprogramma's de volgende functies aan:

NdisAllocateNetBufferListPool

NdisAllocateNetBufferPool

Protocolstuurprogramma's kunnen de volgende functies gebruiken om structuren toe te wijzen vanuit de pools:

NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisAllocateNetBuffer

Het aanroepen van NdisAllocateNetBufferAndNetBufferList is efficiënter dan het aanroepen van NdisAllocateNetBufferList gevolgd door NdisAllocateNetBuffer. NdisAllocateNetBufferAndNetBufferList maakt echter slechts één NET_BUFFER-structuur aan binnen de NET_BUFFER_LIST-structuur. Om NdisAllocateNetBufferAndNetBufferListte gebruiken, moet de driver de AllocateNetBuffer parameter instellen op TRUE wanneer hij NdisAllocateNetBufferListPoolaanroept.

Protocolstuurprogramma's kunnen OID-aanvragen gebruiken om query's uit te voeren op de vereisten voor back-fill en contextruimte van de onderliggende stuurprogramma's. Een protocolstuurprogramma moet de vereisten voor back-fill en context bepalen voor een binding in de status Openen of Opnieuw opstarten . Het stuurprogramma moet voldoende back-fill en contextruimte toewijzen voor de hele stack. Indien nodig kan een protocolstuurprogramma de pools vrijmaken en opnieuw toewijzen in de status Opnieuw opstarten .

Protocolstuurprogramma's gebruiken de volgende functies om de pools vrij te maken:

NdisFreeNetBufferListPool

NdisFreeNetBufferPool.

Protocolstuurprogramma's gebruiken de volgende functies om de structuren die zijn toegewezen uit de pools vrij te maken:

NdisFreeNetBufferList

NdisFreeNetBuffer

Stuurprogramma's moeten NET_BUFFER-structuren, die zijn toegewezen met NdisAllocateNetBuffer, vrijmaken voordat de bijbehorende NET_BUFFER_LIST-structuur wordt vrijgemaakt. NET_BUFFER structuren die zijn toegewezen met NdisAllocateNetBufferAndNetBufferList worden vrijgemaakt wanneer het stuurprogramma NdisFreeNetBufferList aanroept voor de bijbehorende NET_BUFFER_LIST structuur.