Condividi tramite


Strutture di dati di rete

I dati di rete sono costituiti da pacchetti di dati inviati o ricevuti in rete. NDIS fornisce strutture di dati per descrivere e organizzare tali dati. Le strutture dei dati di rete primarie per NDIS 6.0 e versioni successive sono:

La figura seguente illustra le relazioni tra queste strutture.

Diagramma che illustra strutture di dati di rete NDIS 6.0, tra cui NET_BUFFER, NET_BUFFER_LIST e NET_BUFFER_LIST_CONTEXT.

In NDIS 6.0 e versioni successive, il NET_BUFFER è il blocco predefinito di base per la creazione di pacchetti di dati di rete. Ogni struttura NET_BUFFER ha una catena MDL. Gli MDLs eseguono il mapping degli indirizzi dei buffer di dati allo spazio dei dati specificato dalle strutture NET_BUFFER. Questo mapping dei dati è identico alle catene MDL che NDIS 5.x e i driver precedenti venivano usati nella struttura NDIS_PACKET. NDIS fornisce funzioni per modificare la catena MDL.

È possibile collegare più strutture NET_BUFFER a una struttura NET_BUFFER_LIST. Le strutture NET_BUFFER sono organizzate come un elenco collegato singolarmente, terminato con NULL. Solo il driver che ha creato una struttura di NET_BUFFER_LIST o NDIS dovrebbe modificare direttamente l'elenco collegato per inserire ed eliminare strutture NET_BUFFER.

NET_BUFFER strutture list contengono informazioni che descrivono tutte le strutture NET_BUFFER associate a un elenco. Se un driver richiede spazio aggiuntivo per le informazioni sul contesto, il driver può archiviare tali informazioni nelle strutture NET_BUFFER_LIST_CONTEXT. NDIS fornisce funzioni per allocare, liberare e accedere ai dati nelle strutture di NET_BUFFER_LIST_CONTEXT.

È possibile associare più strutture NET_BUFFER_LIST per formare un elenco di strutture NET_BUFFER_LIST. Le strutture NET_BUFFER_LIST sono organizzate come una lista collegata singolarmente terminata da NULL. I driver possono modificare direttamente l'elenco collegato per inserire ed eliminare strutture NET_BUFFER_LIST.

NET_BUFFER

NET_BUFFER struttura

NET_BUFFER LIST

Struttura NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_CONTEXT struttura