Função NdisAllocateNetBufferMdlAndData (ndis/nblapi.h)
Os drivers NDIS chamam a função NdisAllocateNetBufferMdlAndData para alocar uma estrutura NET_BUFFER junto com o MDL e os dados associados.
Sintaxe
NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBufferMdlAndData(
[in] NDIS_HANDLE PoolHandle
);
Parâmetros
[in] PoolHandle
Um identificador de pool de estruturas NET_BUFFER que foi retornado anteriormente de uma chamada para a função NdisAllocateNetBufferPool .
Retornar valor
NdisAllocateNetBufferMdlAndData retorna um ponteiro para a estrutura NET_BUFFER alocada pelo NDIS. Se a alocação não tiver sido bem-sucedida, esse ponteiro será NULL.
Comentários
O chamador deve chamar a função NdisAllocateNetBufferPool e especificar o tamanho máximo dos buffers de dados. Dado esse valor, o NDIS pode pré-alocar buffers para o chamador.
Essa função aloca uma estrutura de NET_BUFFER , MDL e dados em um único buffer de memória. Isso é útil para obter alto desempenho quando NET_BUFFER estruturas são frequentemente alocadas e liberadas. O chamador não deve chamar NdisAllocateNetBuffer para alocar NET_BUFFERs de pools de NET_BUFFER que contêm dados.
O NDIS usa o parâmetro PoolHandle para obter um bloco de memória e, em seguida, cria o NET_BUFFER, MDL e buffer de dados.
Para liberar o NET_BUFFER e as informações associadas, chame a função NdisFreeNetBuffer .
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 de DDI | Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferMdlAndData(ndis), NdisAllocateNetBufferMdlAndData_InitFail(ndis) |