Partilhar 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 o NDIS 5. X e drivers anteriores usam na estrutura NDIS_PACKET . O NDIS fornece funções para manipular a cadeia de MDL.

Várias estruturas NET_BUFFER podem ser anexadas a uma estrutura NET_BUFFER_LIST. As estruturas de NET_BUFFER são organizadas como uma lista vinculada com terminação 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 de NET_BUFFER.

NET_BUFFER estruturas LIST contêm informações que descrevem todas as estruturas de 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 de NET_BUFFER_LIST podem ser anexadas para formar uma lista de estruturas NET_BUFFER_LIST. As estruturas de NET_BUFFER_LIST são organizadas como uma lista vinculada com terminação NULL. Os drivers podem modificar a lista vinculada diretamente para inserir e excluir estruturas de NET_BUFFER_LIST.

NET_BUFFER

Estrutura NET_BUFFER

lista de NET_BUFFER

Estrutura NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

Estrutura NET_BUFFER_LIST_CONTEXT