Strutture dei 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:

Nella figura seguente vengono illustrate le relazioni tra queste strutture.

Diagramma che illustra le 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 ELENCHI di dati eseguono il mapping degli indirizzi dei buffer di dati allo spazio dati specificato dalle strutture NET_BUFFER. Questo mapping dei dati è identico alle catene MDL che NDIS 5. x e versioni precedenti usano i driver nella struttura NDIS_PACKET . NDIS fornisce funzioni per modificare la catena MDL.

È possibile associare più strutture NET_BUFFER a una struttura NET_BUFFER_LIST. Le strutture NET_BUFFER sono organizzate come elenco collegato con terminazione NULL. Solo il driver che ha origine una struttura di NET_BUFFER_LIST o NDIS deve 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 elenco collegato con terminazione NULL. I driver possono modificare direttamente l'elenco collegato per inserire ed eliminare strutture NET_BUFFER_LIST.

NET_BUFFER

Struttura NET_BUFFER

NET_BUFFER LIST

Struttura NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

Struttura NET_BUFFER_LIST_CONTEXT