Partilhar via


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

A rotina RegisterNotificationCallback registra uma rotina de retorno de chamada para que ela possa receber notificações de progresso de DMA com informações de tempo mais precisas.

Sintaxe

PREGISTER_NOTIFICATION_CALLBACK PregisterNotificationCallback;

NTSTATUS PregisterNotificationCallback(
  PVOID _context,
  HANDLE Handle,
  PDEVICE_OBJECT Fdo,
  PHDAUDIO_DMA_NOTIFICATION_CALLBACK NotificationCallback,
  PVOID CallbackContext
)
{...}

Parâmetros

_context

Especifica o valor de contexto do membro contextual da estrutura HDAUDIO_BUS_INTERFACE_V3 .

Handle

Identificador que identifica o mecanismo DMA. Esse valor de identificador foi obtido de uma chamada anterior para AllocateCaptureDmaEngine ou AllocateRenderDmaEngine.

Fdo

O FDO que possui o retorno de chamada. O driver hdaudbus fará uma referência sobre esse FDO enquanto o retorno de chamada estiver registrado para garantir que a rotina de retorno de chamada seja válida.

NotificationCallback

A rotina de retorno de chamada que será chamada para notificar o driver enquanto o DMA está progredindo. Dependendo do parâmetro de contagem de notificações usado com AllocateDmaBufferWithNotification, o evento registrado é sinalizado uma ou duas vezes para cada vez que o DMA passa pelo buffer de áudio.

CallbackContext

Valor de contexto específico do driver para a rotina de retorno de chamada.

Valor de retorno

RegisterNotificationCallback retornará STATUS_SUCCESS se a chamada registrar o evento com êxito. Caso contrário, a rotina retornará STATUS_INSUFFICIENT_RESOURCES para indicar que não há recursos suficientes disponíveis para concluir a operação.

Para obter mais informações, consulte valores NTSTATUS.

Observações

RegisterNotificationCallback registra a rotina de retorno de chamada de notificação com o driver do barramento de áudio HD. O driver do barramento de áudio HD mantém uma lista dos eventos de notificação registrados e rotinas de retorno de chamada para cada mecanismo de DMA. Sempre que o mecanismo receber uma interrupção do COI, todos os eventos serão sinalizados e todas as rotinas de retorno de chamada de notificação serão chamadas em IRQL=DPC com o carimbo de data/hora do QPC no momento em que o COI ocorreu.

As rotinas de retorno de chamada de notificação não são registradas chamando UnregisterNotificationCallback com os mesmos valores NotificationCallback e CallbackContext.

O driver do barramento de áudio HD manterá uma referência no FDO após o registro até que o cancelamento de registro correspondente seja chamado.

Requisitos

Requisito Valor
de cliente com suporte mínimo 19H1
cabeçalho hdaudio.h (inclua hdaudio.h)
IRQL PASSIVE_LEVEL

Consulte também

HDAUDIO_BUS_INTERFACE_V3

hdaudio.h