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.
- Plataforma de destino: Universal
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ndis.h (inclua Ndis.h) |
biblioteca | Ndis.lib |
IRQL | IRQL <= DISPATCH_LEVEL |
Consulte também
- NdisAllocateBufferPool
- NdisAllocateMemoryWithTag
- NdisFreeBuffer