Compartilhar via


Função NdisAllocateBuffer (ndis.h)

Observação 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 o NDIS 6. x, consulte portabilidade de drivers NDIS 5.x para NDIS 6.0.

NdisAllocateBuffer cria um descritor de buffer mapeando um intervalo virtual (sub)especificado em um bloco de memória já alocado e nãopagado.

Sintaxe

void NdisAllocateBuffer(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_BUFFER *Buffer,
  [in, optional] NDIS_HANDLE  PoolHandle,
  [in]           PVOID        VirtualAddress,
  [in]           UINT         Length
);

Parâmetros

[out] Status

Ponteiro para uma variável fornecida pelo chamador na qual essa função retorna o status final da alocação de buffer, que é NDIS_STATUS_SUCCESS se ele retornou um ponteiro de descritor de buffer válido em buffer e de outra forma NDIS_STATUS_FAILURE.

[out] Buffer

Ponteiro para uma variável fornecida pelo chamador na qual essa função retorna um ponteiro para o descritor de buffer alocado.

[in, optional] PoolHandle

Especifica o identificador retornado por uma chamada anterior para NdisAllocateBufferPool.

[in] VirtualAddress

Ponteiro para o endereço virtual base da memória de espaço do sistema alocada anteriormente a ser mapeada no descritor de buffer retornado.

[in] Length

Especifica o número de bytes a serem mapeados.

Valor de retorno

Nenhum

Observações

Valor retornado: Nenhum

NdisAllocateBuffer aloca o armazenamento e inicializa um descritor de buffer para mapear um intervalo especificado de memória alocada anteriormente, como a memória usada para um cabeçalho de pacote ou um buffer de recebimento nic.

A alocação do descritor de buffer se baseia no pool de buffers criado NdisAllocateBufferPool. Um driver pode chamar NdisAllocateBuffer quantas vezes for necessário para alocar os descritores de buffer necessários se ele chamou NdisAllocateBufferPool durante a inicialização.

Todos os drivers NDIS de nível inferior devem alocar todos os descritores de buffer que eles encadeiam para pacotes do 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 e, 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 de NdisXxx.

Requisitos

Requisito Valor
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Consulte também