Compartilhar via


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

A rotina RegisterEventCallback registra uma rotina de retorno de chamada para uma resposta não solicitada de um codec ou codecs.

O tipo de ponteiro de função para uma rotina de RegisterEventCallback é definido da seguinte maneira.

Sintaxe

PREGISTER_EVENT_CALLBACK PregisterEventCallback;

NTSTATUS PregisterEventCallback(
  [in]  PVOID _context,
  [in]  PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine,
  [in]  PVOID Context,
  [out] PUCHAR Tag
)
{...}

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] Routine

Ponteiro de função para uma rotina de retorno de chamada. Esse parâmetro deve ser um ponteiro de função não NULL válido do tipo PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK. Para obter mais informações, consulte a seção Comentários a seguir.

[in] Context

Especifica um valor de contexto para a rotina de retorno de chamada. O chamador converte o valor de contexto para digitar PVOID. Quando um codec gera uma resposta não solicitada que contém a marca especificada, o driver do barramento de áudio HD passa o valor de contexto para a rotina de retorno de chamada como um parâmetro de chamada.

[out] Tag

Recupera um valor de marca que identifica a resposta não solicitada. Esse parâmetro aponta para uma variável UCHAR alocada pelo chamador na qual a rotina grava o valor da marca. O chamador deve especificar esse valor de marca ao programar o codec ou codecs para gerar a resposta não solicitada. Para obter mais informações, consulte a seção Comentários a seguir.

Valor de retorno

RegisterEventCallback retornará STATUS_SUCCESS se a chamada tiver êxito em registrar o evento. Caso contrário, a rotina retornará um código de erro apropriado. A tabela a seguir mostra um possível código de status de retorno.

Código de retorno Descrição
STATUS_INSUFFICIENT_RESOURCES
Indica que não há recursos suficientes disponíveis para concluir a operação.

Observações

Essa rotina registra uma rotina de retorno de chamada para uma resposta não solicitada de um codec. A rotina gera uma marca para identificar a resposta não solicitada. Quando o driver do barramento de áudio HD encontra uma resposta não solicitada de qualquer codec com um valor de marca correspondente, a rotina chama a rotina de retorno de chamada especificada no IRQL DISPATCH_LEVEL e passa o valor de contexto especificado para a rotina como um parâmetro de chamada.

Após a chamada para RegisterEventCallback, o driver de função é responsável por programar o codec ou codecs para gerar respostas não solicitadas com a marca especificada.

A rotina atribui uma marca exclusiva a cada rotina de retorno de chamada registrada. A associação exclusiva entre a marca e a rotina de retorno de chamada persiste desde que a rotina de retorno de chamada permaneça registrada. O driver de função pode excluir o registro de uma rotina de retorno de chamada chamando UnregisterEventCallback.

Atualmente, o motorista do ônibus pode fornecer até 64 marcas exclusivas por codec.

O parâmetro de retorno de chamada é um ponteiro de função para uma rotina de retorno de chamada no driver de função. O tipo de ponteiro de função para a rotina de retorno de chamada é definido como:

typedef VOID
  (*PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)
    (HDAUDIO_CODEC_RESPONSE, PVOID);

O primeiro parâmetro de chamada é uma estrutura do tipo HDAUDIO_CODEC_RESPONSE que especifica a resposta do codec ao comando. Essa estrutura é passada por valor. O segundo parâmetro de chamada é o valor de callbackContext que foi passado anteriormente para RegisterEventCallback. O motorista do barramento de áudio HD chama a rotina de retorno de chamada no IRQL DISPATCH_LEVEL.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho hdaudio.h (inclua Hdaudio.h)
IRQL PASSIVE_LEVEL (seção Ver Comentários)

Consulte também

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2

HDAUDIO_CODEC_RESPONSE

UnregisterEventCallback  

hdaudio.h