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 miniporta normalmente chamam NdisAllocateNetBufferListPool de MiniportInitializeEx para criar um pool de estruturas NET_BUFFER_LIST. Os drivers de miniporta usam essas estruturas para indicar os dados recebidos.
Normalmente, um driver de miniporta que aloca uma estrutura de NET_BUFFER_LIST alocará e enfileirará uma NET_BUFFER estrutura nessa estrutura NET_BUFFER_LIST. É mais eficiente pré-alocar estruturas NET_BUFFER quando você aloca um pool de estruturas NET_BUFFER_LIST do que alocar estruturas NET_BUFFER_LIST e estruturas NET_BUFFER separadamente.
Os drivers de miniporta podem chamar NdisAllocateNetBufferListPool e definir o parâmetro AllocateNetBuffer como TRUE para indicar que NET_BUFFER estruturas estão pré-alocadas. Nesse caso, uma estrutura de NET_BUFFER é pré-alocada 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 miniporta 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 livres.
A função MiniportReturnNetBufferLists pode preparar uma estrutura de NET_BUFFER_LIST retornada para reutilização numa indicação de receção subsequente. Embora MiniportReturnNetBufferLists possa retornar as estruturas 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 miniporta deve liberar todas as estruturas de NET_BUFFER_LIST e dados associados quando o NDIS interrompe o adaptador. Um driver pode chamar a função NdisFreeNetBufferList para libertar as estruturas e a função NdisFreeNetBufferListPool para libertar o pool de NET_BUFFER_LIST.