Condividi tramite


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