Megosztás:


Újraszerelt NET_BUFFER_LIST struktúrák

Az NDIS-illesztőprogramok egy meglévő NET_BUFFER_LIST struktúrából hozhatnak létre újra összeszerelt NET_BUFFER_LIST struktúrát. Az újraszerelt struktúra több forrás-NET_BUFFER struktúrából származó eredeti adatokra hivatkozik. Az illesztőprogramok ilyen típusú szerkezettel hatékonyan kombinálhatnak sok kisebb puffert egyetlen nagy pufferbe.

Az alábbi ábra egy szülő-NET_BUFFER_LIST-struktúra és egy újraépített gyermekstruktúra közötti kapcsolatot mutatja be:

diagram, amely a szülő-NET_BUFFER_LIST struktúra és az újraösszeállított gyermekstruktúra közötti kapcsolatot szemlélteti.

Az előző ábra egy szülő-NET_BUFFER_LIST struktúrát és egy gyermekstruktúrát tartalmaz, amely az adott szülőből származik. A szülőstruktúra egy NET_BUFFER_LIST_CONTEXT struktúrával és három NET_BUFFER struktúrával, amelyekhez MDL-ek tartoznak, rendelkezik. A szülőstruktúra szülő mutatója NULL, amely azt jelzi, hogy nem származtatott struktúra.

A gyermek NET_BUFFER_LIST struktúrája egy NET_BUFFER szerkezettel rendelkezik, amelyhez MDL-ek vannak csatolva. A gyermek NET_BUFFER_LIST struktúrája a szülőszerkezetre mutató mutatóval rendelkezik. A NULL azt jelzi, hogy ahol egy NET_BUFFER_LIST_CONTEXT struktúramutatónak kellene lennie, ott a gyermeknek nincs NET_BUFFER_LIST_CONTEXT struktúrája.

Az NDIS-illesztőprogramok meghívják a NdisAllocateReassembledNetBufferList függvényt egy töredezett NET_BUFFER_LIST szerkezet újra összeállításához. Az NDIS új NET_BUFFER struktúrát és MDL-ket foglal le az újraszerelt NET_BUFFER_LIST struktúrával. Az NDIS nem foglal le NET_BUFFER_LIST_CONTEXT struktúrát az újraösszeállított struktúrához. Az újraszerelt NET_BUFFER struktúra és az MDL-k ugyanazokat az adatokat írják le, mint a szülőstruktúra. Az adatok másolása nem történik meg.

Az újraszerelt NET_BUFFER_LIST szerkezet létrehozásához a NdisAllocateReassembledNetBufferList az egyes szülő-NET_BUFFER struktúrákban átugorja a StartOffset paraméterben megadott bájtok számát. NdisAllocateReassembledNetBufferList összefűzi az egyes szülő-NET_BUFFER struktúrában lévő fennmaradó adatokat egy újra összeállított NET_BUFFER-struktúra MDL-láncába. NdisAllocateReassembledNetBufferList visszaállítja az újraszerelt NET_BUFFER struktúra felhasznált adatterületét a DataOffsetDelta által megadott mennyiséggel.

Az NDIS-illesztőprogramok meghívják a NdisFreeReassembledNetBufferList függvényt, hogy felszabadítsa az újraszerelt NET_BUFFER_LIST struktúrát és a hozzá tartozó NET_BUFFER struktúrát és MDL-láncot.

származtatott NET_BUFFER_LIST struktúrák