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 miniport normalmente chamam NdisAllocateNetBufferListPool de MiniportInitializeEx para criar um pool de estruturas de NET_BUFFER_LIST . Os drivers de miniport usam essas estruturas para indicar os dados recebidos.
Normalmente, um driver de miniporto que aloca uma estrutura NET_BUFFER_LIST alocará e enfileirará uma estrutura NET_BUFFER nessa estrutura NET_BUFFER_LIST. É mais eficiente alocar previamente as estruturas NET_BUFFER ao alocar um pool de estruturas NET_BUFFER_LIST do que alocar as estruturas NET_BUFFER_LIST e NET_BUFFER separadamente.
Os drivers de miniport podem chamar NdisAllocateNetBufferListPool e definir o parâmetro AllocateNetBuffer como TRUE para indicar que as estruturas de NET_BUFFER estão pré-alocadas. Nesse caso, uma estrutura NET_BUFFER é pré-alocada junto com cada estrutura NET_BUFFER_LIST que o driver aloca do pool. Esses drivers devem chamar NdisAllocateNetBufferAndNetBufferList para alocar estruturas desse pool.
Normalmente, um driver de miniporto chama NdisAllocateNetBufferAndNetBufferList de MiniportInitializeEx para alocar quantos buffers forem necessários para operações de recebimento subsequentes. Nesse caso, o driver gerencia uma lista interna de buffers gratuitos.
A função MiniportReturnNetBufferLists pode preparar uma estrutura de NET_BUFFER_LIST retornada para reutilização em uma indicação de recebimento subsequente. Embora MiniportReturnNetBufferLists possa retornar as estruturas de NET_BUFFER_LIST para um pool (por exemplo, ele pode chamar NdisFreeNetBufferList), pode ser mais eficiente reutilizar as estruturas sem devolvê-las ao pool.
Um driver de miniporto deve liberar todas as estruturas de NET_BUFFER_LIST e os dados associados quando o NDIS interromper o adaptador. Um driver pode chamar NdisFreeNetBufferList para liberar as estruturas e a função NdisFreeNetBufferListPool para liberar o pool de NET_BUFFER_LIST.