PFREE_COMMON_BUFFER função de retorno de chamada (wdm.h)
A rotina FreeCommonBuffer libera um buffer comum alocado por AllocateCommonBuffer, juntamente com todos os recursos que o buffer usa.
Sintaxe
PFREE_COMMON_BUFFER PfreeCommonBuffer;
void PfreeCommonBuffer(
[in] PDMA_ADAPTER DmaAdapter,
[in] ULONG Length,
[in] PHYSICAL_ADDRESS LogicalAddress,
[in] PVOID VirtualAddress,
[in] BOOLEAN CacheEnabled
)
{...}
Parâmetros
[in] DmaAdapter
Ponteiro para a estrutura de DMA_ADAPTER retornada por IoGetDmaAdapter que representa o adaptador mestre do barramento ou o controlador DMA.
[in] Length
Especifica o número de bytes a serem desalocados.
[in] LogicalAddress
Especifica o endereço lógico do intervalo de memória alocado.
[in] VirtualAddress
Ponteiro para o endereço virtual correspondente do intervalo de memória alocado.
[in] CacheEnabled
Indica se a memória alocada está armazenada em cache.
Valor de retorno
Nenhum
Observações
FreeCommonBuffer não é uma rotina do sistema que pode ser chamada diretamente pelo nome. Essa rotina só pode ser chamada por ponteiro do endereço retornado em uma estrutura de DMA_OPERATIONS. Os drivers obtêm o endereço dessa rotina chamando IoGetDmaAdapter.
Para liberar um buffer comum, um driver chama FreeCommonBuffer para desmapear seus endereços lógicos e virtuais. Os parâmetros passados para FreeCommonBuffer devem corresponder exatamente aos passados e retornados de AllocateCommonBuffer. Um driver não pode liberar parte de um buffer comum alocado.