PSET_DMA_ENGINE_STATE função de retorno de chamada (hdaudio.h)
A rotina SetDmaEngineState define o estado de um ou mais mecanismos de DMA para o estado Executando, Parado, Pausado ou Redefinir.
O tipo de ponteiro de função para uma rotina SetDmaEngineState é definido da seguinte maneira.
Sintaxe
PSET_DMA_ENGINE_STATE PsetDmaEngineState;
NTSTATUS PsetDmaEngineState(
[in] PVOID _context,
[in] HDAUDIO_STREAM_STATE StreamState,
[in] ULONG NumberOfHandles,
[in] PHANDLE Handles
)
{...}
Parâmetros
[in] _context
Especifica o valor de contexto do membro Context da estrutura HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 ou HDAUDIO_BUS_INTERFACE_BDL .
[in] StreamState
Especifica o novo estado do fluxo. Defina esse parâmetro como um dos seguintes valores de enumeração HDAUDIO_STREAM_STATE:
- PauseState (pausado)
- ResetState (redefinir)
- RunState (em execução)
- StopState (parado)
[in] NumberOfHandles
Especifica o número de identificadores na matriz handles . Defina esse parâmetro como um valor diferente de zero.
[in] Handles
Ponteiro para uma matriz de identificadores para mecanismos de DMA. Especifique um valor não NULL para esse parâmetro.
Retornar valor
SetDmaEngineState retornará STATUS_SUCCESS se a chamada for bem-sucedida na alteração dos estados dos mecanismos de DMA. 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 um dos identificadores é inválido. |
|
Indica que um dos valores de parâmetro está incorreto (valor de parâmetro inválido ou ponteiro inválido). |
|
Indica que nenhum buffer está alocado no momento para um dos mecanismos de DMA. |
Comentários
Essa rotina altera o estado de um ou mais mecanismos de DMA para o estado especificado pelo parâmetro streamState . A rotina sincroniza as transições de estado de todos os mecanismos de AMD que os identificadores na matriz de identificadores identificam. Para obter mais informações, consulte Sincronizando dois ou mais fluxos.
Antes de chamar essa rotina, configure cada mecanismo de AMD na matriz de identificadores :
- Se estiver usando a versão HDAUDIO_BUS_INTERFACE da DDI de áudio HD, chame AllocateDmaBuffer para configurar o mecanismo de DMA.
- Se estiver usando a versão HDAUDIO_BUS_INTERFACE_BDL da DDI, chame SetupDmaEngineWithBdl para configurar o mecanismo de DMA.
O estado do fluxo não pode fazer a transição diretamente entre Executando e Redefinindo. Em vez disso, o fluxo deve passar primeiro por um estado intermediário de Pausado ou Parado:
- Em um estado Executando ou Redefinindo, o estado do fluxo pode ser alterado diretamente para Pausado ou Parado.
- De um estado pausado ou interrompido, o estado do fluxo pode ser alterado diretamente para Executando ou Redefinindo.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | hdaudio.h (inclua Hdaudio.h) |
IRQL | <=DISPATCH_LEVEL |