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 que foi obtido durante a inicialização do chamador.

[in] Parameters

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

Retornar valor

NdisAllocateNetBufferListPool retorna um identificador para o pool de estrutura NET_BUFFER_LIST que o NDIS aloca. 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.

Comentários

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 TRUE ao criar um pool de estrutura NET_BUFFER_LIST. Nesse caso, uma estrutura de NET_BUFFER é pré-alocada com cada estrutura NET_BUFFER_LIST alocada pelo chamador do pool. Você pode chamar o Função NdisAllocateNetBufferAndNetBufferList ou a Função NdisAllocateNetBufferList para alocar NET_BUFFER_LIST estruturas desse pool. Chame NdisAllocateNetBufferAndNetBufferList somente se fAllocateNetBuffer for TRUE 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 de NET_BUFFER, MDL e dados são pré-alocados com cada estrutura NET_BUFFER_LIST alocada pelo chamador 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
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis/nblapi.h (inclua ndis.h)
Biblioteca Ndis.lib
DLL Ndis.sys
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferListPool(ndis), NdisAllocateNetBufferListPool_InitFail(ndis)

Confira também

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisFreeNetBufferList

NdisFreeNetBufferListPool