Megosztás:


NET_BUFFER struktúra

Az NDIS 6.0 és újabb NET_BUFFER struktúrák az NDIS 5 által használt NDIS_PACKET struktúrákhoz hasonlóak.x és korábbi illesztőprogramokat. Minden NET_BUFFER struktúra egy hálózati adatcsomagot csomagol.

Az alábbi ábrán egy NET_BUFFER szerkezet mezői láthatók.

diagram egy NET_BUFFER struktúrában lévő mezőket mutatja.

A NET_BUFFER-struktúra NET_BUFFER_HEADER struktúrát tartalmaz a NetBufferHeader tagban. A NET_BUFFER_HEADER-struktúra egy NET_BUFFER_DATA struktúrát tartalmaz a NetBufferData tagban. NDIS-makrókkal kell elérnie NET_BUFFER struktúratagokat. A makrók teljes listáját a NET_BUFFER struktúra referenciaoldalán találja.

A NET_BUFFER struktúra egyes tagjait csak az NDIS használja. Az illesztőprogramok által általában használt tagok a következők:

ProtokollFoglalás
Protokollillesztők számára fenntartott.

MiniportReserved
Miniport-illesztőprogramok számára fenntartott.

NdisPoolHandle
Egy készletfogantyút határoz meg, amely azonosítja azt a NET_BUFFER készletet, amelyből a NET_BUFFER struktúrát lefoglalták.

Következő
A NET_BUFFER struktúrák csatolt listájának következő NET_BUFFER szerkezetére mutató mutatót ad meg. Ha ez a lista utolsó NET_BUFFER struktúrája, akkor ez a tag NULL.

Adathossz
Az MDL-lánc hálózati adatainak bájtban megadott hosszát adja meg.

DataOffset
Bájtban adja meg az eltolást az MDL-láncban lévő memória kezdetétől az MDL-lánc hálózati adatainak elejéig.

CurrentMdl
Az aktuális illesztőprogram által használt első MDL-hez mutató mutatót ad meg. Ez a mutató optimalizálást biztosít, amely javítja a teljesítményt azáltal, hogy kihagyja az aktuális illesztőprogram által nem használt MDL-ket.

CurrentMdlOffset
A NET_BUFFER-struktúra CurrentMdl tagja által megadott MDL használt adatterületének kezdetéig tartó eltolást ad meg bájtokban.

Az alábbi ábra a CurrentMdl, CurrentMdlOffset, DataOffsetés DataLength tagok és az adattér közötti kapcsolatot mutatja be.

Diagram, amely a CurrentMdl, a CurrentMdlOffset, a DataOffset és a DataLength adatterület-lefoglalását ábrázolja.

Az NDIS függvényeket biztosít az MDL-láncban lévő adattér kezeléséhez. Hogyan változtatják a járművezetők az adattér használatát dinamikusan az aktuális vezetővel. Előfordul, hogy az aktuális illesztőprogram jelenleg nem használt adatterületet használ. Bár a nem használt adatterület jelenleg nincs használatban, érvényes adatokat tartalmazhat. A fogadási útvonalon például a nem használt adattér tartalmazhatnak egy alacsonyabb szintű illesztőprogram által használt fejlécadatokat.

Az illesztőprogramok a használt adattérnövelése és csökkentése érdekében visszavonulási és továbblépési műveleteket hajtanak végre. További információ a visszavonulásról és az előléptetési műveletekről: Visszavonulás és haladási műveletek.

Az alábbi kifejezések és definíciók a NET_BUFFER adattér elemeit ismertetik:

Használt adattér
Használt adatterület az aktuális illesztőprogram által az aktuális időpontban használt adatokat tartalmazza. Az illesztőprogramok növelik a használt adatterületet a visszavonulási műveletekkel, és csökkentik a használt adatterületet, az előzetes műveletekkel.

nem használt adatterület
Az aktuális illesztőprogram jelenleg nem használja ezt az adatteret.

Teljes adatméret
A teljes adatméret a használt adattér és a nem használt méretének összege. A teljes méret kiszámításához adja hozzá a DataOffset értékét a DataLength értékéhez.

visszavonulás
A visszavonulási műveletek növelik a használt adattér méretét.

Advance
Az előzetes műveletek csökkentik a használt adattér méretét.