NET_PACKET struttura (packet.h)

Rappresenta un singolo pacchetto di rete.

Sintassi

typedef struct _NET_PACKET {
  UINT32            FragmentIndex;
  UINT16            FragmentCount;
  NET_PACKET_LAYOUT Layout;
  UINT8             Ignore : 1;
  UINT8             Scratch : 1;
  UINT8             Reserved1 : 6;
} NET_PACKET;

Members

FragmentIndex

Indice nell'anello del frammento della prima struttura NET_FRAGMENT nel payload del pacchetto.

FragmentCount

Numero di strutture NET_FRAGMENT appartenenti a questo pacchetto.

Layout

Struttura NET_PACKET_LAYOUT .

Per le code di trasmissione, se lo stack host ha abilitato un offload di attività che usa un'intestazione del protocollo, specifica un offset di sola lettura a ogni campo del protocollo. Ad esempio, se il offload checksum TCP è abilitato, questo membro specifica l'offset dell'intestazione TCP. In caso contrario, questo membro è vuoto.

Per le code di ricezione, se lo stack host ha abilitato un offload di attività che usa un'intestazione del protocollo, impostare i flag Layer2Type, Layer3Type e Layer4Type. Quando non sono presenti offload di attività, questo membro è vuoto.

Ignore

Per le code di ricezione, il client imposta questo campo per impedire che il pacchetto venga indicato nell'host. Ad esempio, se l'hardware ha rilevato un errore DMA durante la scrittura di byte in questo buffer di dati per i frammenti del pacchetto, il client può impostare questo campo per eliminare il pacchetto parziale.

Per le code di trasmissione, questo campo è di sola lettura. Se impostato, indica che il client non deve trasmettere il pacchetto.

Scratch

Valore del campo bit che il client può usare per qualsiasi scopo. Quando il NET_PACKET viene riutilizzato, questo valore viene reimpostato su zero.

Reserved1

Riservato. I driver client non devono leggere o scrivere questo valore.

Commenti

Ogni struttura NET_PACKET rappresenta un singolo frame di rete e contiene metadati di base applicabili a tutti i pacchetti, ad esempio il layout di frame. Un NET_PACKET contiene almeno un NET_FRAGMENT che descrive la posizione nella memoria di sistema in cui risiedono i dati del pacchetto.

La struttura NET_PACKET può essere un elemento in una struttura NET_RING .

Requisiti

Requisito Valore
Versione KMDF minima 1.29
Intestazione packet.h