Condividi tramite


creazione di pacchetti di dati NET_BUFFER

La creazione di pacchetti di dati è stata riprogettata in NDIS 6.0. L'architettura di invio e ricezione basata sulla struttura NDIS_PACKET è stata sostituita con un'architettura basata su strutture NET_BUFFER e NET_BUFFER_LIST. Una struttura NET_BUFFER è l'equivalente funzionale di una struttura NDIS_PACKET. Una struttura NET_BUFFER specifica un buffer (catena MDL) per i dati di rete, nonché lo spazio riservato per NDIS, driver di protocollo e driver miniport. Le strutture NET_BUFFER possono essere collegate in un elenco descritto da una struttura NET_BUFFER_LIST. Una struttura NET_BUFFER_LIST fornisce anche spazio di archiviazione per i dati fuori banda (OOB) che si applicano a tutte le strutture NET_BUFFER nell'elenco.

Tutti i componenti nella stack di driver di rete di prossima generazione Microsoft, incluso il trasporto TCP/IP e Winsock, usano l'impacchettamento dati NET_BUFFER. La creazione di pacchetti di dati uniformi in tutto lo stack di driver elimina la necessità di riassemblare i dati, semplifica la gestione dei dati e riduce il numero di chiamate di funzione.

Per supportare driver meno recenti che usano strutture NDIS_PACKET, NDIS 6.0 converte le strutture NDIS_PACKET in strutture NET_BUFFER e viceversa. Questa traduzione è trasparente per i driver NDIS.

NDIS propaga i requisiti di riempimento dei dati di un driver ai driver di livello superiore. Quando si allocano strutture NET_BUFFER e NET_BUFFER_LIST per l'invio di dati, un driver di livello superiore alloca spazio dati sufficiente per supportare tutti i driver di livello inferiore nello stack. Di conseguenza, i driver di livello inferiore non devono allocare spazio buffer aggiuntivo per accogliere le intestazioni specifiche del livello. A questo scopo, invece, possono usare lo spazio di riempimento preallocato.

Per altre informazioni sull'architettura NET_BUFFER, vedere NET_BUFFER Architecture.