NET_FRAGMENT struttura (fragment.h)
Rappresenta un buffer contiguo in memoria.
Sintassi
typedef struct _NET_FRAGMENT {
UINT64 ValidLength : 26;
UINT64 Capacity : 26;
UINT64 Offset : 10;
UINT64 Scratch : 1;
UINT64 OsReserved_Bounced : 1;
} NET_FRAGMENT;
Members
ValidLength
Contiene la lunghezza del payload del pacchetto. Questo valore è minore o uguale al valore di Capacity.
Per le code di trasmissione, questo valore è di sola lettura.
Capacity
Contiene la lunghezza totale del buffer dei pacchetti.
Per le code di trasmissione, questo valore è di sola lettura.
Offset
Contiene l'offset dall'inizio di VirtualAddress e DmaLogicalAddress all'inizio del payload del pacchetto valido. Questo valore è minore o uguale al valore di Capacity.
Per ottenere l'indirizzo virtuale per questo frammento, chiamare NetExtensionGetFragmentVirtualAddress.
Per ottenere l'indirizzo logico DMA per questo frammento, chiamare NetExtensionGetFragmentLogicalAddress.
Per le code di trasmissione, questo valore è di sola lettura.
Scratch
Valore del campo bit che il client può usare per qualsiasi scopo. Quando il NET_PACKET a cui appartiene questo frammento viene riutilizzato, questo valore viene reimpostato su zero.
OsReserved_Bounced
Riservato. I driver client non devono leggere o scrivere in questo valore.
Commenti
Una singola struttura NET_PACKET contiene riferimenti a una o più strutture NET_FRAGMENT .
Mentre ogni frammento è un buffer virtualmente contiguo di memoria, un pacchetto che contiene più di un frammento è virtualmente discontivo.
Requisiti
Requisito | Valore |
---|---|
Versione KMDF minima | 1.29 |
Intestazione | fragment.h |