Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En NDIS-drivrutin kan skapa en ommonterad NET_BUFFER_LIST struktur från en befintlig NET_BUFFER_LIST struktur. Den ommonterade strukturen refererar till ursprungliga data från flera källstrukturer NET_BUFFER. Drivrutiner kan använda den här typen av struktur för att effektivt kombinera många mindre buffertar till en enda stor buffert.
Följande bild visar relationen mellan en överordnad NET_BUFFER_LIST struktur och en ommonterad underordnad struktur:
Föregående bild innehåller en överordnad NET_BUFFER_LIST struktur och en underordnad struktur som härleddes från den överordnade bilden. Den överordnade strukturen har en NET_BUFFER_LIST_CONTEXT struktur och tre NET_BUFFER strukturer med MDL:er kopplade. Den överordnade strukturens överordnade pekare är NULL- som anger att den inte är en härledd struktur.
Den underordnade NET_BUFFER_LIST strukturen har en NET_BUFFER struktur med MDL:er anslutna. Den underordnade NET_BUFFER_LIST struktur har en pekare till den överordnade strukturen. Den NULL- där en NET_BUFFER_LIST_CONTEXT strukturpekare skulle vara anger att det underordnade objektet inte har någon NET_BUFFER_LIST_CONTEXT struktur.
NDIS-drivrutiner anropar funktionen NdisAllocateReassembledNetBufferList för att sätta ihop en fragmenterad NET_BUFFER_LIST struktur igen. NDIS allokerar en ny NET_BUFFER struktur och MDL:er med den ommonterade NET_BUFFER_LIST strukturen. NDIS allokerar inte en NET_BUFFER_LIST_CONTEXT struktur för den ommonterade strukturen. Den ommonterade NET_BUFFER struktur och MDL:er beskriver samma data som den överordnade strukturen. Data kopieras inte.
Om du vill skapa den ommonterade NET_BUFFER_LIST struktur hoppar NdisAllocateReassembledNetBufferList över antalet byte som anges i parametern StartOffset i var och en av de överordnade NET_BUFFER strukturerna. NdisAllocateReassembledNetBufferList sammanfogar återstående data i varje överordnad NET_BUFFER struktur i MDL-kedjan för en ommonterad NET_BUFFER struktur. NdisAllocateReassembledNetBufferList retreats (ökar det använda datautrymmet i) den ommonterade NET_BUFFER strukturen med den mängd som anges i DataOffsetDelta .
NDIS-drivrutiner anropar funktionen NdisFreeReassembledNetBufferList för att frigöra en ommonterad NET_BUFFER_LIST struktur och tillhörande NET_BUFFER struktur och MDL-kedja.