NET_PACKET structure (packet.h)

Représente un paquet réseau unique.

Syntaxe

typedef struct _NET_PACKET {
  UINT32            FragmentIndex;
  UINT16            FragmentCount;
  NET_PACKET_LAYOUT Layout;
  UINT8             Ignore : 1;
  UINT8             Scratch : 1;
  UINT8             Reserved1 : 6;
} NET_PACKET;

Membres

FragmentIndex

Index dans l’anneau de fragments de la première structure NET_FRAGMENT dans la charge utile de ce paquet.

FragmentCount

Nombre de structures NET_FRAGMENT qui appartiennent à ce paquet.

Layout

Structure NET_PACKET_LAYOUT .

Pour les files d’attente de transmission, si la pile hôte a activé un déchargement de tâche qui utilise un en-tête de protocole, spécifie un décalage en lecture seule pour chaque champ de protocole. Par exemple, si le déchargement de la somme de contrôle TCP est activé, ce membre spécifie le décalage vers l’en-tête TCP. Sinon, ce membre est vide.

Pour les files d’attente de réception, si la pile hôte a activé un déchargement de tâche qui utilise un en-tête de protocole, définissez les indicateurs Layer2Type, Layer3Type et Layer4Type . Lorsqu’il n’y a pas de déchargement de tâche, ce membre est vide.

Ignore

Pour les files d’attente de réception, le client définit ce champ pour empêcher l’indication du paquet à l’hôte. Par exemple, si le matériel a rencontré une erreur DMA lors de l’écriture d’octets dans cette mémoire tampon de données pour les fragments de ce paquet, le client peut définir ce champ de manière à supprimer le paquet partiel.

Pour les files d’attente de transmission, ce champ est en lecture seule. S’il est défini, il indique que le client ne doit pas transmettre le paquet.

Scratch

Valeur de champ bit que le client peut utiliser à n’importe quel usage. Lorsque le NET_PACKET est réutilisé, cette valeur est réinitialisée à zéro.

Reserved1

Réservé. Les pilotes clients ne doivent pas lire ou écrire cette valeur.

Remarques

Chaque structure de NET_PACKET représente une trame réseau unique et contient des métadonnées de base applicables à tous les paquets, comme la disposition d’encadrement. Un NET_PACKET contient au moins un NET_FRAGMENT qui décrit l’emplacement dans la mémoire système où résident les données de paquets.

La structure NET_PACKET peut être un élément d’une structure NET_RING .

Configuration requise

Condition requise Valeur
Version KMDF minimale 1.29
En-tête packet.h