Função NdisAllocateNetBufferPool (ndis/nblapi.h)
Chame a função NdisAllocateNetBufferPool para alocar um pool de estruturas NET_BUFFER .
Sintaxe
NDIS_EXPORTED_ROUTINE NDIS_HANDLE NdisAllocateNetBufferPool(
[in, optional] NDIS_HANDLE NdisHandle,
[in] NET_BUFFER_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_POOL_PARAMETERS que define os parâmetros para o pool. A estrutura é definida da seguinte maneira:
typedef struct _NET_BUFFER_POOL_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG PoolTag;
ULONG DataSize;
} NET_BUFFER_POOL_PARAMETERS, *PNET_BUFFER_POOL_PARAMETERS;
Essa estrutura inclui os seguintes membros:
parâmetro
A estrutura NDIS_OBJECT_HEADER para a estrutura NET_BUFFER_POOL_PARAMETERS. Defina o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_DEFAULT, o membro Revision como NET_BUFFER_POOL_PARAMETERS_REVISION_1 e o membro Size como NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1.
PoolTag
Uma marca de pool de kernel que o chamador usa quando aloca NET_BUFFER estruturas desse pool. A marca é uma cadeia de caracteres, delimitada por aspas simples, com até quatro caracteres, geralmente especificados na ordem inversa. A marca do pool de kernel ajuda o NDIS a identificar o proprietário das estruturas de NET_BUFFER alocadas desse pool.
DataSize
O tamanho de dados padrão para buffers de dados associados a esse pool. O chamador deve definir esse valor se chamar o Função NdisAllocateNetBufferMdlAndData . O NDIS usa esse valor para definir o tamanho do buffer de dados alocado para a estrutura NET_BUFFER. Se o chamador não usar esse recurso, esse valor deverá ser definido como zero.
Retornar valor
NdisAllocateNetBufferPool retorna um identificador para o pool de estrutura NET_BUFFER 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 desse pool.
Comentários
Chame as funções a seguir para alocar estruturas NET_BUFFER do pool de estrutura NET_BUFFER.
NdisAllocateNetBufferMdlAndDataO MDL e os buffers de dados alocados com NdisAllocateNetBufferMdlAndData não devem ser liberados separados da estrutura NET_BUFFER. Essas estruturas são liberadas com a estrutura NET_BUFFER quando você chama a função NdisFreeNetBuffer .
Chame a função NdisFreeNetBufferPool para liberar NET_BUFFER pools de estrutura criados com NdisAllocateNetBufferPool.
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 |
IRQL | <= DISPATCH_LEVEL |
Regras de conformidade da DDI | Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferPool(ndis), NdisAllocateNetBufferPool_InitFail(ndis) |