Função NdisAllocateNetBufferPool (ndis/nblapi.h)
Chame a função NdisAllocateNetBufferPool para alocar um pool de estruturas de 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 obtido durante a inicialização do chamador.
[in] Parameters
Um ponteiro para uma estrutura de 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:
Cabeçalho
A estrutura NDIS_OBJECT_HEADER para a estrutura de NET_BUFFER_POOL_PARAMETERS. Defina o membro tipo da estrutura que de Cabeçalho especifica para NDIS_OBJECT_TYPE_DEFAULT, o membro de Revisão para NET_BUFFER_POOL_PARAMETERS_REVISION_1 e o membro tamanho para 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 especificadas em ordem inversa. A marca de 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 ele chamar o função NdisAllocateNetBufferMdlAndData. O NDIS usa esse valor para definir o tamanho do buffer de dados que ele aloca para a estrutura de NET_BUFFER. Se o chamador não usar esse recurso, esse valor deverá ser definido como zero.
Valor de retorno
NdisAllocateNetBufferPool retorna um identificador para o pool de estrutura NET_BUFFER 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 desse pool.
Observações
Chame as funções a seguir para alocar estruturas de NET_BUFFER do pool de estruturas 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 pools de estrutura NET_BUFFER criados com NdisAllocateNetBufferPool.
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 |
IRQL | <= DISPATCH_LEVEL |
regras de conformidade de DDI | Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferPool(ndis), NdisAllocateNetBufferPool_InitFail(ndis) |