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)

Confira também

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer