Partilhar via


PFREE_CONTIGUOUS_DMA_BUFFER função de retorno de chamada (hdaudio.h)

A FreeContiguousDmaBuffer rotina libera um buffer DMA e uma lista de descritores de buffer (BDL) que foram alocados por uma chamada para AllocateContiguousDmaBuffer.

O tipo de ponteiro de função para uma rotina de FreeContiguousDmaBuffer é 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 de contexto membro da estrutura HDAUDIO_BUS_INTERFACE_BDL.

[in] Handle

Manipule a identificação do mecanismo de DMA. Esse valor de identificador foi obtido de uma chamada anterior para AllocateCaptureDmaEngine ou AllocateRenderDmaEngine.

Valor de retorno

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
STATUS_UNSUCCESSFUL
Indica que o chamador está em execução em um IRQL que é muito alto.
STATUS_INVALID_HANDLE
Indica que o valor do parâmetro de identificador é inválido.
STATUS_INVALID_DEVICE_REQUEST
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.

Observações

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 DMA para usar um buffer DMA alocado anteriormente, AllocateDmaBuffer aloca um buffer DMA e configura o mecanismo DMA para usar o buffer. Para obter mais informações, consulte Diferenças entre as duas versões de 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 redefinição.

Requisitos

Requisito Valor
da Plataforma de Destino Desktop
cabeçalho hdaudio.h (inclua Hdaudio.h)
IRQL PASSIVE_LEVEL

Consulte também

allocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateDmaBuffer

AllocateRenderDmaEngine

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE_BDL

SetupDmaEngineWithBdl