Compartilhar via


estrutura NET_BUFFER_LIST_CONTEXT (ndis/nbl.h)

A estrutura NET_BUFFER_LIST_CONTEXT armazena informações de contexto para uma estrutura NET_BUFFER_LIST .

Sintaxe

typedef struct _NET_BUFFER_LIST_CONTEXT {
  NET_BUFFER_LIST_CONTEXT *Next;
  USHORT                  Size;
  USHORT                  Offset;
  UCHAR                   ContextData[];
} NET_BUFFER_LIST_CONTEXT, *PNET_BUFFER_LIST_CONTEXT;

Membros

Next

Um ponteiro para a próxima estrutura NET_BUFFER_LIST_CONTEXT em uma lista vinculada de estruturas de NET_BUFFER_LIST_CONTEXT.

Size

O tamanho, em bytes, de todo o espaço de contexto na estrutura NET_BUFFER_LIST_CONTEXT, incluindo o espaço de contexto usado e não utilizado.

Offset

O deslocamento, em bytes, desde o início do buffer de dados de contexto até o início dos dados de contexto na estrutura NET_BUFFER_LIST_CONTEXT. O membro Offset também especifica o tamanho em bytes do espaço de contexto não utilizado na estrutura NET_BUFFER_LIST_CONTEXT.

ContextData

O buffer de dados de contexto. Os dados de contexto podem incluir qualquer informação que um driver exija.

Comentários

Cada estrutura NET_BUFFER_LIST pode incluir uma estrutura de NET_BUFFER_LIST_CONTEXT pré-alocada. À medida que uma estrutura NET_BUFFER_LIST percorre a pilha de drivers, a lista vinculada de estruturas de NET_BUFFER_LIST_CONTEXT pode se expandir para acomodar espaço de dados adicional para cada driver.

Os drivers devem usar as seguintes macros e funções NDIS para acessar e manipular membros em uma estrutura NET_BUFFER_LIST_CONTEXT:

O membro ContextData da estrutura NET_BUFFER_LIST_CONTEXT especifica a parte de dados da estrutura NET_BUFFER_LIST_CONTEXT. Para melhorar o desempenho do sistema, um driver deve pré-alocar qualquer espaço de dados de contexto necessário quando o driver aloca um pool de estrutura NET_BUFFER_LIST. Para pré-alocar esse espaço de dados, um driver chama o Função NdisAllocateNetBufferListPool e especifica a quantidade de espaço de dados necessária no parâmetro ContextSize . A pré-alocação desse espaço de dados salva o NDIS da alocação de memória nos caminhos de recebimento e envio.
Nota O NDIS estima o espaço de dados de contexto necessário e, se necessário, ajusta o espaço de dados alocado para atender aos requisitos de toda a pilha de driver.
 
O membro Offset especifica a quantidade de espaço de contexto não utilizado na estrutura NET_BUFFER_LIST_CONTEXT. O membro Offset também indica o deslocamento do início do membro ContextData para o início do espaço de dados de contexto usado.

Os drivers NDIS chamam o Função NdisAllocateNetBufferListContext para alocar espaço de buffer contíguo na estrutura NET_BUFFER_LIST_CONTEXT. Se necessário, o NDIS aloca uma nova estrutura de NET_BUFFER_LIST_CONTEXT com espaço adicional para atender à solicitação. Os drivers NDIS chamam o Função NdisFreeNetBufferListContext para liberar o espaço em buffer.

Use o NET_BUFFER_LIST_CONTEXT_DATA_SIZE macro para obter o tamanho do espaço de contexto usado. Use o NET_BUFFER_LIST_CONTEXT_DATA_START macro para obter o endereço inicial do espaço de contexto usado.

Para obter mais informações sobre como usar buffers de rede, consulte Arquitetura do NET_BUFFER.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Cabeçalho ndis/nbl.h (inclua ndis.h)

Confira também

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT_DATA_SIZE NET_BUFFER_LIST_CONTEXT_DATA_START NdisAllocateNetBufferListContext NdisAllocateNetBufferListPool

NdisFreeNetBufferListContext