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.
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.