PREGISTER_EVENT_CALLBACK fonction de rappel (hdaudio.h)

La routine RegisterEventCallback inscrit une routine de rappel pour une réponse non sollicitée provenant d’un codec ou de codecs.

Le type de pointeur de fonction pour une routine RegisterEventCallback est défini comme suit.

Syntaxe

PREGISTER_EVENT_CALLBACK PregisterEventCallback;

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

Paramètres

[in] _context

Spécifie la valeur de contexte du membre Context de la structure HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 ou HDAUDIO_BUS_INTERFACE_BDL .

[in] Routine

Pointeur de fonction vers une routine de rappel. Ce paramètre doit être un pointeur de fonction non NULL valide de type PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK. Pour plus d'informations, consultez la section Notes qui suit.

[in] Context

Spécifie une valeur de contexte pour la routine de rappel. L’appelant caste la valeur de contexte pour qu’elle soit de type PVOID. Lorsqu’un codec génère une réponse non sollicitée qui contient la balise spécifiée, le pilote de bus Audio HD transmet la valeur de contexte à la routine de rappel en tant que paramètre d’appel.

[out] Tag

Récupère une valeur de balise qui identifie la réponse non sollicitée. Ce paramètre pointe vers une variable UCHAR allouée à l’appelant dans laquelle la routine écrit la valeur de balise. L’appelant doit spécifier cette valeur d’étiquette lors de la programmation du ou des codecs pour générer la réponse non sollicitée. Pour plus d'informations, consultez la section Notes qui suit.

Valeur retournée

RegisterEventCallback retourne STATUS_SUCCESS si l’appel réussit à inscrire l’événement. Sinon, la routine retourne un code d’erreur approprié. Le tableau suivant montre un retour possible status code.

Code de retour Description
STATUS_INSUFFICIENT_RESOURCES
Indique que les ressources disponibles ne sont pas suffisantes pour terminer l’opération.

Remarques

Cette routine enregistre une routine de rappel pour une réponse non sollicitée à partir d’un codec. La routine génère une balise pour identifier la réponse non sollicitée. Lorsque le pilote de bus Audio HD rencontre une réponse non sollicitée d’un codec avec une valeur d’étiquette correspondante, la routine appelle la routine de rappel spécifiée à l’adresse IRQL DISPATCH_LEVEL et transmet la valeur de contexte spécifiée à la routine en tant que paramètre d’appel.

Après l’appel à RegisterEventCallback, le pilote de fonction est responsable de la programmation du codec ou des codecs pour générer des réponses non sollicitées avec la balise spécifiée.

La routine affecte une balise unique à chaque routine de rappel inscrite. L’association unique entre la balise et la routine de rappel persiste tant que la routine de rappel reste inscrite. Le pilote de fonction peut supprimer l’inscription d’une routine de rappel en appelant UnregisterEventCallback.

Actuellement, le pilote de bus peut fournir jusqu’à 64 balises uniques par codec.

Le paramètre de rappel est un pointeur de fonction vers une routine de rappel dans le pilote de fonction. Le type de pointeur de fonction pour la routine de rappel est défini comme suit :

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

Le premier paramètre d’appel est une structure de type HDAUDIO_CODEC_RESPONSE qui spécifie la réponse du codec à la commande. Cette structure est transmise par valeur. Le deuxième paramètre d’appel est la valeur callbackContext qui a été passée précédemment à RegisterEventCallback. Le pilote de bus Audio HD appelle la routine de rappel à irQL DISPATCH_LEVEL.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête hdaudio.h (inclure Hdaudio.h)
IRQL PASSIVE_LEVEL (voir la section Remarques)

Voir aussi

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2

HDAUDIO_CODEC_RESPONSE

DésinscrireEventCallback  

hdaudio.h