Gekloonde NET_BUFFER_LIST Structuren
Een NDIS-stuurprogramma maakt een gekloonde NET_BUFFER_LIST structuur op basis van een bestaande NET_BUFFER_LIST structuur. De gekloonde structuur verwijst naar de oorspronkelijke structuurgegevens. Stuurprogramma's kunnen dit type structuur gebruiken om dezelfde gegevens efficiënt over te dragen naar meerdere paden.
In de volgende afbeelding ziet u de relatie tussen een ouder NET_BUFFER_LIST-structuur en een gekloonde kindstructuur.
De voorgaande figuur bevat een ouder NET_BUFFER_LIST structuur en een kindstructuur die is afgeleid van die ouder. De bovenliggende structuur heeft één NET_BUFFER_LIST_CONTEXT structuur en één NET_BUFFER structuur waaraan MDL's zijn gekoppeld. De bovenliggende pointer van de ouderstructuur is NULL, wat aangeeft dat het geen afgeleide structuur is.
De onderliggende NET_BUFFER_LIST-structuur heeft één NET_BUFFER-structuur waaraan MDL's zijn gekoppeld. De substructuur NET_BUFFER_LIST heeft een verwijzing naar de hoofdstructuur. De NULL geeft aan dat waar een NET_BUFFER_LIST_CONTEXT-structuurpointer zou moeten zijn, het kind geen NET_BUFFER_LIST_CONTEXT-structuur heeft.
Stuurprogramma's roepen de NdisAllocateCloneNetBufferList functie aan om een kloon NET_BUFFER_LIST structuur te maken. NDIS wijst nieuwe NET_BUFFER structuren en MDL's toe met de gekloonde NET_BUFFER_LIST structuur. NDIS wijst geen structuur NET_BUFFER_LIST_CONTEXT toe voor de gekloonde structuur. De nieuwe NET_BUFFER structuren en MDL's beschrijven dezelfde gegevens als in de bovenliggende structuur. De gegevens worden niet gekopieerd.
Stuurprogramma's roepen de NdisFreeCloneNetBufferList functie aan om een NET_BUFFER_LIST structuur en alle bijbehorende NET_BUFFER structuren en MDL-ketens vrij te maken die eerder zijn toegewezen door NdisAllocateCloneNetBufferListaan te roepen.