Compartilhar via


Função NdisAllocateBufferPool (ndis.h)

Nota NDIS 5. x foi preterido e substituído pelo NDIS 6. x. Para obter um novo desenvolvimento de driver NDIS, consulte Drivers de rede começando com o Windows Vista. Para obter informações sobre como portar o NDIS 5. x drivers para NDIS 6. x, consulte Portabilidade de drivers NDIS 5.x para NDIS 6.0.

Essa função retorna um identificador com o qual o chamador pode alocar descritores de buffer chamando a função NdisAllocateBuffer .

Sintaxe

void NdisAllocateBufferPool(
  [out] PNDIS_STATUS Status,
  [out] PNDIS_HANDLE PoolHandle,
  [in]  UINT         NumberOfDescriptors
);

Parâmetros

[out] Status

Ponteiro para uma variável fornecida pelo chamador na qual essa função retorna a status final da alocação do pool de buffers.

[out] PoolHandle

Ponteiro para uma variável fornecida pelo chamador na qual essa função retorna um identificador para o pool de buffers. Esse identificador é um parâmetro necessário para as funções de buffer NDIS que o driver chama posteriormente.

[in] NumberOfDescriptors

Especifica o número de descritores de buffer que o chamador espera alocar do pool de buffers sem liberar nenhum descritor de buffer alocado de volta para o pool.

Retornar valor

Nenhum

Comentários

Sempre retorna NDIS_STATUS_SUCCESS.

Depois que essa função retorna, o driver chama a função NdisAllocateBuffer uma ou mais vezes para alocar os descritores de buffer necessários. Um driver deve chamar essa função durante a inicialização.

O parâmetro NumberOfDescriptors especificado por um driver NIC geralmente depende dos recursos da NIC. Por exemplo, o driver de um barramento master NIC de DMA com buffers de anéis especificaria pelo menos um NumberOfDescriptors grande o suficiente para mapear o anel completo.

Os NumberOfDescriptors especificados na chamada para essa função é o limite efetivo de quantas vezes o driver pode chamar NdisAllocateBuffer antes de chamar a função NdisFreeBuffer para retornar um descritor de buffer para a lista livre para o pool de buffers.

Quando um driver não precisa mais do pool de buffers alocado, ele chama a função NdisFreeBufferPool para liberar o identificador do pool de buffers.

O driver deve liberar qualquer bloqueio de rotação que ele esteja mantendo antes de chamar essa função.

Todos os drivers NDIS de nível inferior devem alocar todos os descritores de buffer que encadeiam para pacotes de um pool de buffers. Somente drivers de protocolo de nível mais alto podem receber descritores dependentes do sistema operacional mapeando intervalos de memória virtual. Se esses descritores de memória forem equivalentes a descritores de buffer NDIS, um protocolo de nível mais alto poderá passar descritores como parâmetros para funções NDIS.

Versões do sistema operacional: Windows CE .NET 4.0 e posterior.

Requisitos

Requisito Valor
Cabeçalho ndis.h
IRQL IRQL <= DISPATCH_LEVEL

Confira também