NET_FRAGMENT structure (fragment.h)

Représente une mémoire tampon contiguë en mémoire.

Syntaxe

typedef struct _NET_FRAGMENT {
  UINT64 ValidLength : 26;
  UINT64 Capacity : 26;
  UINT64 Offset : 10;
  UINT64 Scratch : 1;
  UINT64 OsReserved_Bounced : 1;
} NET_FRAGMENT;

Membres

ValidLength

Contient la longueur de la charge utile du paquet. Cette valeur est inférieure ou égale à la valeur de Capacité.

Pour les files d’attente de transmission, cette valeur est en lecture seule.

Capacity

Contient la longueur totale de la mémoire tampon de paquets.

Pour les files d’attente de transmission, cette valeur est en lecture seule.

Offset

Contient le décalage entre le début de VirtualAddress et DmaLogicalAddress jusqu’au début de la charge utile de paquet valide. Cette valeur est inférieure ou égale à la valeur de Capacité.

Pour obtenir l’adresse virtuelle de ce fragment, appelez NetExtensionGetFragmentVirtualAddress.

Pour obtenir l’adresse logique DMA pour ce fragment, appelez NetExtensionGetFragmentLogicalAddress.

Pour les files d’attente de transmission, cette valeur est en lecture seule.

Scratch

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

OsReserved_Bounced

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

Remarques

Une structure de NET_PACKET unique contient des références à une ou plusieurs structures NET_FRAGMENT .

Bien que chaque fragment soit une mémoire tampon pratiquement contiguë, un paquet qui contient plusieurs fragments est pratiquement discontiguant.

Configuration requise

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