estrutura NET_PACKET (packet.h)

Representa um único pacote de rede.

Sintaxe

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

Membros

FragmentIndex

O índice no anel de fragmento do primeiro NET_FRAGMENT estrutura no conteúdo desse pacote.

FragmentCount

O número de estruturas de NET_FRAGMENT que pertencem a esse pacote.

Layout

Uma estrutura NET_PACKET_LAYOUT .

Para filas de transmissão, se a pilha de host tiver habilitado um descarregamento de tarefa que usa um cabeçalho de protocolo, especificará um deslocamento somente leitura para cada campo de protocolo. Por exemplo, se o descarregamento de soma de verificação TCP estiver habilitado, esse membro especificará o deslocamento para o cabeçalho TCP. Caso contrário, esse membro estará vazio.

Para filas de recebimento, se a pilha de host tiver habilitado um descarregamento de tarefa que usa um cabeçalho de protocolo, defina os sinalizadores Layer2Type, Layer3Type e Layer4Type . Quando não há descarregamentos de tarefa, esse membro está vazio.

Ignore

Para filas de recebimento, o cliente define esse campo para impedir que o pacote seja indicado para o host. Por exemplo, se o hardware encontrou um erro de DMA ao gravar bytes nesse buffer de dados para os fragmentos desse pacote, o cliente poderá definir esse campo para remover o pacote parcial.

Para filas de transmissão, esse campo é somente leitura. Se definido, indica que o cliente não deve transmitir o pacote.

Scratch

Um valor de campo de bit que o cliente pode usar para qualquer finalidade. Quando o NET_PACKET é reutilizado, esse valor é redefinido para zero.

Reserved1

Reservado. Os drivers de cliente não devem ler ou gravar esse valor.

Comentários

Cada estrutura NET_PACKET representa um único quadro de rede e contém metadados básicos aplicáveis a todos os pacotes, como o layout de enquadramento. Um NET_PACKET contém pelo menos um NET_FRAGMENT que descreve o local na memória do sistema em que os dados do pacote residem.

A estrutura NET_PACKET pode ser um elemento em uma estrutura NET_RING .

Requisitos

Requisito Valor
Versão mínima do KMDF 1.29
Versão mínima do UMDF 2.33
Cabeçalho packet.h