structure NET_FRAGMENT (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 du VirtualAddress et DmaLogicalAddress 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 de bits que le client peut utiliser à n’importe quel but. 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 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ë de mémoire, un paquet contenant plusieurs fragments est pratiquement discontiguueux.
Exigences
Exigence | Valeur |
---|---|
version minimale de KMDF | 1.29 |
d’en-tête | fragment.h |