Compartilhar via


Estruturas de dados de rede

Os dados de rede consistem em pacotes de dados enviados ou recebidos pela rede. O NDIS fornece estruturas de dados para descrever e organizar esses dados. As estruturas de dados de rede primárias para NDIS 6.0 e posterior são:

A figura a seguir ilustra as relações entre essas estruturas.

Diagrama ilustrando estruturas de dados de rede do NDIS 6.0, incluindo NET_BUFFER, NET_BUFFER_LIST e NET_BUFFER_LIST_CONTEXT.

No NDIS 6.0 e posterior, o NET_BUFFER é o bloco de construção básico para empacotar dados de rede. Cada estrutura NET_BUFFER tem uma cadeia de MDL. Os MDLs mapeiam os endereços dos buffers de dados para o espaço de dados especificado pelas estruturas de NET_BUFFER. Esse mapeamento de dados é idêntico às cadeias de MDL que os drivers NDIS 5.x e anteriores usam na estrutura NDIS_PACKET. O NDIS oferece funções para manipular a cadeia de MDL.

Várias estruturas de NET_BUFFER podem ser anexadas a uma estrutura NET_BUFFER_LIST. As estruturas de dados NET_BUFFER são organizadas como uma lista vinculada simples terminada em NULL. Somente o driver que origina uma estrutura de NET_BUFFER_LIST, ou NDIS, deve modificar a lista vinculada diretamente para inserir e excluir estruturas NET_BUFFER.

estruturas NET_BUFFER LIST contêm informações que descrevem todas as estruturas NET_BUFFER anexadas a uma lista. Se um driver exigir espaço adicional para informações de contexto, o driver poderá armazenar essas informações nas estruturas de NET_BUFFER_LIST_CONTEXT. O NDIS fornece funções para alocar, liberar e acessar os dados nas estruturas de NET_BUFFER_LIST_CONTEXT.

Várias estruturas NET_BUFFER_LIST podem ser anexadas para formar uma lista de estruturas de NET_BUFFER_LIST. As estruturas NET_BUFFER_LIST são organizadas como uma lista encadeada simples terminada em NULL. Os drivers podem modificar a lista vinculada diretamente para inserir e excluir estruturas NET_BUFFER_LIST.

NET_BUFFER

Estrutura NET_BUFFER

LISTA de NET_BUFFER

estrutura NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

Estrutura de NET_BUFFER_LIST_CONTEXT