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