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 |