Partilhar via


Função NdisAllocateNetBufferMdlAndData (ndis/nblapi.h)

Os drivers NDIS chamam a função NdisAllocateNetBufferMdlAndData para alocar uma estrutura de NET_BUFFER juntamente 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 estrutura NET_BUFFER que foi retornado anteriormente de uma chamada para a função de NdisAllocateNetBufferPool.

Valor de retorno

NdisAllocateNetBufferMdlAndData retorna um ponteiro para a estrutura de NET_BUFFER alocada pelo NDIS. Se a alocação não tiver sido bem-sucedida, esse ponteiro será NULL.

Observações

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 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 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, O MDL e o buffer de dados.

Para liberar as informações NET_BUFFER e associadas, chame a função NdisFreeNetBuffer.

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), NdisAllocateNetBufferMdlAndData(ndis), NdisAllocateNetBufferMdlAndData_InitFail(ndis)

Consulte também

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer