Compartilhar via


NdisAllocatePacketPool

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Essa função aloca e inicializa um bloco de armazenamento para um pool de pacote descritores.

Syntax

VOID NdisAllocatePacketPool(
  PNDIS_STATUS Status,
  PNDIS_HANDLE PoolHandle,
  UINT NumberOfDescriptors,
  UINT ProtocolReservedLength
);

Parameters

  • Status
    [out] Ponteiro para uma variável Caller-supplied no qual essa função retorna o status de alocação de pool pacote.
  • PoolHandle
    [out] Identificador para o pool pacote. Esse identificador é exigido um parâmetro para as pacote NDIS funções que o driver chama posteriormente.
  • NumberOfDescriptors
    [no] Especifica o número de descritores pacote que o pool deve conter.
  • ProtocolReservedLength
    [no] Especifica o número de bytes a ser alocada para o ProtocolReserved matriz do descritor cada pacote. Para descritores pacote que devem ser usados em receber indicações, este parâmetro pode ter no máximo 16 bytes.

Return Value

A seguinte tabela mostra os valores de retorno possíveis para essa função.

Valor Descrição

NDIS_STATUS_SUCCESS

O driver pode fazer chamadas para o NdisAllocatePacket função quando ele precisa descritores pacote para tornar indicações up to drivers de nível mais alto ou para enviar pacotes para Baixo para diminuir-nível drivers.

NDIS_STATUS_RESOURCES

A tentativa de alocar uma pacote pool falha, possivelmente devido a uma insuficiência de memória. No entanto, o chamador pode tentar diminuir as NumberOfDescriptors parâmetro e chamar novamente imediatamente.

Remarks

O chamador deve salvar o identificador retornado por essa função. Geralmente, o driver próximo chamadas a NdisAllocatePacket função uma ou mais vezes com este identificador para alocar um conjunto de pacote descritores. O NumberofDescriptors especificado na chamar para essa função é o limite eficaz em quantas vezes o driver pode chamar NdisAllocatePacket Antes ele deve chamar o NdisFreePacket função para retornar um descritor pacote para o livre lista para o pool pacote.

Porque os pacotes enviados ou indicados são retornados para o driver ao alocar, ele pode reutilizar cada descritor pacote após chamado de NdisReinitializePacket função e configuração ele BACKUP novamente com um encadear de descritores reserva ou o driver pode chamar o NdisFreePacket função para retornar esse pacote para o livre lista. Reinicializando e reutilizando pacotes alocados a partir de pool pacote é muito mais rápido do que liberando e realocá-los. Antes de que chama um driver NdisReinitializePacket Com um descritor pacote, ele deve salvar os ponteiros para descritores reserva que estão conectados ao descritor de pacote, porque NdisReinitializePacket Define o início do encadear reserva para NULL.

Quando o driver não mais precisa o pool pacote, ele chama o NdisFreePacketPool função a versão de armazenamento pool pacote.

O driver deve versão qualquer rotação bloqueio que ele está mantendo antes chamado essa função.

Requirements

Header ndis.h
Library ndis.lib
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

NdisAllocatePacket
NdisFreePacket
NdisFreePacketPool
NdisMIndicateReceivePacket
NdisReinitializePacket
NdisUnchainBufferAtBack
NdisUnchainBufferAtFront