struttura NET_FRAGMENT (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;
Membri
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 di pacchetti.
Per le code di trasmissione, questo valore è di sola lettura.
Offset
Contiene l'offset dall'inizio del 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 di 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.
Osservazioni
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 disgiunte.
Fabbisogno
Requisito | Valore |
---|---|
versione minima di KMDF | 1.29 |
intestazione | fragment.h |