Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os drivers de filtro criam buffers para copiar dados de rede obtidos de outros drivers ou para iniciar operações de envio ou recebimento.
Se um driver de filtro não criar buffers, o driver não gerenciará pools de buffers. Esse controlador simplesmente passa os buffers que recebe de outros controladores.
Um driver de filtro que cria buffers para dar suporte a operações de envio ou recebimento deve gerenciar pools de estrutura NET_BUFFER_LIST e pools de estrutura NET_BUFFER.
Para criar esses pools, os drivers chamam as seguintes funções:
Os drivers de filtro podem usar as seguintes funções para alocar estruturas dos pools:
NdisAllocateNetBufferAndNetBufferList
Chamar NdisAllocateNetBufferAndNetBufferList é mais eficiente do que chamar NdisAllocateNetBufferList seguido por NdisAllocateNetBuffer. No entanto, a função NdisAllocateNetBufferAndNetBufferList cria apenas uma estrutura NET_BUFFER na estrutura NET_BUFFER_LIST. Para usar NdisAllocateNetBufferAndNetBufferList, o driver deve definir o parâmetro AllocateNetBuffer para TRUE quando chama NdisAllocateNetBufferListPool.
Os drivers de filtro que originam solicitações de envio devem determinar o contexto e os requisitos de espaço de preenchimento dos drivers subjacentes. Os drivers de filtro usam atributos de reinicialização para determinar os requisitos de preenchimento dos drivers subjacentes. Um driver de filtro deve determinar os requisitos de preenchimento e contexto no Reiniciando estado. O driver deve alocar espaço adicional de preenchimento e de contexto suficiente para toda a pilha. Se necessário, um driver de filtro pode liberar os pools e realocá-los no Reiniciando estado.
Os drivers de filtro usam as seguintes funções para liberar os pools:
Os drivers de filtro usam as seguintes funções para liberar as estruturas alocadas dos pools:
Os drivers devem liberar estruturas NET_BUFFER alocadas com NdisAllocateNetBuffer antes de liberar a estrutura de NET_BUFFER_LIST associada. As estruturas NET_BUFFER alocadas com NdisAllocateNetBufferAndNetBufferList são libertadas quando o driver chama NdisFreeNetBufferList para a estrutura associada NET_BUFFER_LIST.