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_LIST_POOL_PARAMETERS
NdisAllocateNetBufferAndNetBufferList