PFREE_CONTIGUOUS_DMA_BUFFER função de retorno de chamada (hdaudio.h)
A FreeContiguousDmaBuffer
rotina libera um buffer DMA e uma BDL (lista de descritores de buffer) que foram alocados por uma chamada para AllocateContiguousDmaBuffer.
O tipo de ponteiro de função para uma FreeContiguousDmaBuffer
rotina é definido da seguinte maneira.
Sintaxe
PFREE_CONTIGUOUS_DMA_BUFFER PfreeContiguousDmaBuffer;
NTSTATUS PfreeContiguousDmaBuffer(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
Parâmetros
[in] _context
Especifica o valor de contexto do membro Context da estrutura HDAUDIO_BUS_INTERFACE_BDL .
[in] Handle
Manipule a identificação do mecanismo de AMD. Esse valor de identificador foi obtido de uma chamada anterior para AllocateCaptureDmaEngine ou AllocateRenderDmaEngine.
Retornar valor
FreeContiguousDmaBuffer
retornará STATUS_SUCCESS se a chamada for bem-sucedida. Caso contrário, a rotina retornará um código de erro apropriado. A tabela a seguir mostra alguns dos possíveis códigos de status de retorno.
Código de retorno | Descrição |
---|---|
|
Indica que o chamador está em execução em um IRQL muito alto. |
|
Indica que o valor do parâmetro handle é inválido. |
|
Indica que o fluxo não está no estado de redefinição ou que nenhum buffer está alocado no momento para o mecanismo de DMA. |
Comentários
A FreeContiguousDmaBuffer
rotina é usada em conjunto com as rotinas SetupDmaEngineWithBdl e AllocateContiguousDmaBuffer . Essas três rotinas estão disponíveis apenas na versão HDAUDIO_BUS_INTERFACE_BDL da DDI de áudio HD. Essa DDI não inclui as rotinas AllocateDmaBuffer e FreeDmaBuffer , que nunca são usadas em conjunto com AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl e FreeContiguousDmaBuffer
. Ao contrário de SetupDmaEngineWithBdl, que configura o mecanismo de DMA para usar um buffer de DMA alocado anteriormente, AllocateDmaBuffer aloca um buffer de DMA e configura o mecanismo de DMA para usar o buffer. Para obter mais informações, consulte Diferenças entre as duas versões DDI.
A rotina falha e retorna o código de erro STATUS_INVALID_DEVICE_REQUEST em qualquer uma das seguintes circunstâncias:
-
O cliente chama
FreeContiguousDmaBuffer
quando nenhum buffer está alocado no momento para o mecanismo de DMA. - O fluxo está em um estado diferente de redefinir.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | hdaudio.h (inclua Hdaudio.h) |
IRQL | PASSIVE_LEVEL |