Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 driver simplesmente passa os buffers que recebe de outros drivers.
Um driver de filtro que cria buffers para dar suporte a operações de envio ou recebimento deve gerenciar pools de estruturas NET_BUFFER_LIST e pools de estruturas NET_BUFFER.
Para criar esses pools, os drivers chamam as seguintes funções:
Os drivers de filtro podem utilizar as seguintes funções para alocar estruturas a partir dos pools:
NdisAllocateNetBufferAndNetBufferList
Chamar NdisAllocateNetBufferAndNetBufferList é mais eficiente do que chamar NdisAllocateNetBufferList seguido por NdisAllocateNetBuffer. No entanto, NdisAllocateNetBufferAndNetBufferList cria apenas uma estrutura NET_BUFFER na estrutura NET_BUFFER_LIST. Para usar NdisAllocateNetBufferAndNetBufferList, o driver deve definir o parâmetro AllocateNetBuffer como TRUE quando chamar 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 backfill de drivers subjacentes. Um driver de filtro deve determinar os requisitos de backfill e de contexto no estado de reinicialização . O driver deve alocar espaço suficiente de backfill e de contexto para toda a pilha. Se necessário, um driver de filtro pode liberar os pools e realocá-los no estado de reinicialização .
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 nos pools:
Os drivers devem liberar as estruturas NET_BUFFER alocadas com NdisAllocateNetBuffer antes de liberar a estrutura NET_BUFFER_LIST associada. Estruturas NET_BUFFER alocadas com NdisAllocateNetBufferAndNetBufferList são liberadas quando o driver chama NdisFreeNetBufferList para a NET_BUFFER_LIST associada.