Compartilhar via


Função NdisAllocateNetBufferListPool (ndis/nblapi.h)

Chame a função NdisAllocateNetBufferListPool para alocar um pool de estruturas de NET_BUFFER_LIST.

Sintaxe

NDIS_EXPORTED_ROUTINE NDIS_HANDLE NdisAllocateNetBufferListPool(
  [in, optional] NDIS_HANDLE                           NdisHandle,
  [in]           NET_BUFFER_LIST_POOL_PARAMETERS const *Parameters
);

Parâmetros

[in, optional] NdisHandle

Um identificador NDIS obtido durante a inicialização do chamador.

[in] Parameters

Um ponteiro para uma estrutura de NET_BUFFER_LIST_POOL_PARAMETERS que define os parâmetros para o pool.

Valor de retorno

NdisAllocateNetBufferListPool retorna um identificador para o pool de estrutura NET_BUFFER_LIST alocado pelo NDIS. Se a alocação não tiver sido bem-sucedida, esse identificador será NULL. Esse identificador é um parâmetro necessário em chamadas subsequentes para funções NDIS que alocam e liberam estruturas de NET_BUFFER_LIST desse pool.

Observações

Na maioria dos casos, um chamador que aloca uma estrutura de NET_BUFFER_LIST alocará e enfileirará pelo menos uma estrutura NET_BUFFER nessa estrutura NET_BUFFER_LIST. É mais eficiente pré-alocar estruturas NET_BUFFER quando você aloca um pool de estruturas de NET_BUFFER_LIST do que alocar estruturas NET_BUFFER_LIST e estruturas NET_BUFFER separadamente.

Você pode chamar a função NdisAllocateNetBufferListPool com o valor fAllocateNetBuffer definido como verdadeiro ao criar um pool de estrutura NET_BUFFER_LIST. Nesse caso, uma estrutura de NET_BUFFER é pré-alocada com cada estrutura NET_BUFFER_LIST que o chamador aloca do pool. Você pode chamar o função NdisAllocateNetBufferAndNetBufferList ou função NdisAllocateNetBufferList para alocar estruturas NET_BUFFER_LIST desse pool. Chame NdisAllocateNetBufferAndNetBufferList somente se fAllocateNetBuffer estiver VERDADEIRO e dataSize for zero.

Você também pode chamar NdisAllocateNetBufferListPool e definir o membro DataSize como um valor diferente de zero ao criar um pool de estrutura NET_BUFFER_LIST. Nesse caso, uma estrutura NET_BUFFER, MDL e dados são pré-alocados com cada estrutura NET_BUFFER_LIST que o chamador aloca do pool.

NET_BUFFER estruturas, MDLs e buffers de dados alocados com NdisAllocateNetBufferAndNetBufferList ou NdisAllocateNetBufferList não devem ser liberados separados da estrutura NET_BUFFER_LIST. Essas estruturas são liberadas com a estrutura NET_BUFFER_LIST quando você chama a função NdisFreeNetBufferList.

Chamar o função NdisFreeNetBufferListPool para liberar um pool de estrutura NET_BUFFER_LIST.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte no NDIS 6.0 e posterior.
da Plataforma de Destino Universal
cabeçalho ndis/nblapi.h (inclua ndis.h)
biblioteca Ndis.lib
de DLL Ndis.sys
IRQL <= DISPATCH_LEVEL
regras de conformidade de DDI Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferListPool(ndis), NdisAllocateNetBufferListPool_InitFail(ndis)

Consulte também

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisFreeNetBufferList

NdisFreeNetBufferListPool