Partilhar via


Estruturas de dados de rede

Os dados de rede consistem em pacotes de dados que são enviados ou recebidos através da rede. O NDIS fornece estruturas de dados para descrever e organizar esses dados. As principais estruturas de dados de rede 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 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 MDL. Os MDLs mapeiam os endereços dos buffers de dados para o espaço de dados especificado pelas estruturas NET_BUFFER. Este mapeamento de dados é idêntico às cadeias MDL que os drivers NDIS 5.x e anteriores usam na estrutura NDIS_PACKET. O NDIS fornece funções para manipular a cadeia MDL.

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

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

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

NET_BUFFER

NET_BUFFER Estrutura

NET_BUFFER LISTA

NET_BUFFER_LIST Estrutura

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_CONTEXT Estrutura