PSET_DMA_ENGINE_STATE função de retorno de chamada (hdaudio.h)
A rotina SetDmaEngineState define o estado de um ou mais mecanismos DMA para o estado Executando, Parado, Pausado ou Redefinido.
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 de contexto membro da estrutura HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2ou 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 (redefinição)
- RunState (em execução)
- StopState (parado)
[in] NumberOfHandles
Especifica o número de identificadores no manipula matriz. Defina esse parâmetro como um valor diferente de zero.
[in] Handles
Ponteiro para uma matriz de identificadores para mecanismos DMA. Especifique um valorNULL não para esse parâmetro.
Valor de retorno
SetDmaEngineState retornará STATUS_SUCCESS se a chamada tiver êxito em alterar os 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 incorreto). |
|
Indica que nenhum buffer está alocado no momento para um dos mecanismos de DMA. |
Observações
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 DMA que os identificadores no manipula identificar a matriz. Para obter mais informações, consulte Sincronizando dois ou mais fluxos.
Antes de chamar essa rotina, configure cada mecanismo de DMA no manipula matriz:
- Se estiver usando a versão HDAUDIO_BUS_INTERFACE da DDI de áudio HD, chame AllocateDmaBuffer para configurar o mecanismo DMA.
- Se estiver usando a versão HDAUDIO_BUS_INTERFACE_BDL da DDI, chame SetupDmaEngineWithBdl para configurar o mecanismo DMA.
O estado do fluxo não pode fazer a transição diretamente entre a execução e a redefinição. Em vez disso, o fluxo deve passar primeiro por um estado intermediário de Pausado ou Parado:
- Em um estado em execução ou redefinição, 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 Execução ou Redefinição.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | hdaudio.h (inclua Hdaudio.h) |
IRQL | <=DISPATCH_LEVEL |