Share via


Structures de données réseau

Les données réseau se composent de paquets de données qui sont envoyés ou reçus sur le réseau. NDIS fournit des structures de données pour décrire et organiser ces données. Les structures de données réseau principales pour NDIS 6.0 et versions ultérieures sont les suivantes :

La figure suivante illustre les relations entre ces structures.

Diagramme illustrant les structures de données réseau NDIS 6.0, notamment NET_BUFFER, NET_BUFFER_LIST et NET_BUFFER_LIST_CONTEXT.

Dans NDIS 6.0 et versions ultérieures, le NET_BUFFER est le bloc de construction de base pour empaqueter les données réseau. Chaque structure NET_BUFFER a une chaîne MDL. Les dll MDL mappent les adresses des mémoires tampons de données à l’espace de données spécifié par les structures NET_BUFFER. Ce mappage de données est identique aux chaînes MDL qui NDIS 5. x et les pilotes antérieurs utilisent dans la structure NDIS_PACKET . NDIS fournit des fonctions pour manipuler la chaîne MDL.

Plusieurs structures NET_BUFFER peuvent être attachées à une structure NET_BUFFER_LIST. Les structures NET_BUFFER sont organisées sous la forme d’une liste liée par liaison unique avec fin NULL. Seul le pilote à l’origine d’une structure NET_BUFFER_LIST, ou NDIS, doit modifier directement la liste liée pour insérer et supprimer NET_BUFFER structures.

NET_BUFFER structures LIST contiennent des informations qui décrivent toutes les structures NET_BUFFER attachées à une liste. Si un pilote a besoin d’espace supplémentaire pour les informations de contexte, il peut stocker ces informations dans les structures NET_BUFFER_LIST_CONTEXT. NDIS fournit des fonctions pour allouer, libérer et accéder aux données dans les structures NET_BUFFER_LIST_CONTEXT.

Plusieurs structures NET_BUFFER_LIST peuvent être attachées pour former une liste de structures NET_BUFFER_LIST. Les structures NET_BUFFER_LIST sont organisées sous la forme d’une liste liée de manière unique terminée par null. Les pilotes peuvent modifier la liste liée directement pour insérer et supprimer NET_BUFFER_LIST structures.

NET_BUFFER

NET_BUFFER Structure

liste NET_BUFFER

NET_BUFFER_LIST Structure

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_CONTEXT Structure