Partager via


PREGISTER_NOTIFICATION_CALLBACK fonction de rappel (hdaudio.h)

La routine RegisterNotificationCallback inscrit une routine de rappel afin qu’elle puisse recevoir des notifications de progression DMA avec des informations de minutage plus précises.

Syntaxe

PREGISTER_NOTIFICATION_CALLBACK PregisterNotificationCallback;

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

Paramètres

_context

Spécifie la valeur de contexte du membre context de la structure HDAUDIO_BUS_INTERFACE_V3 .

Handle

Handle qui identifie le moteur DMA. Cette valeur de handle a été obtenue à partir d’un appel précédent à AllocateCaptureDmaEngine ou AllocateRenderDmaEngine.

Fdo

FDO propriétaire du rappel. Le pilote hdaudbus prend une référence sur cette FDO pendant que le rappel est inscrit pour s’assurer que la routine de rappel est valide.

NotificationCallback

Routine de rappel qui sera appelée pour avertir le pilote à mesure que DMA progresse. Selon le paramètre de nombre de notifications utilisé avec AllocateDmaBufferWithNotification, l’événement inscrit est signalé une ou deux fois pour chaque fois que la DMA passe par la mémoire tampon audio.

CallbackContext

Valeur de contexte spécifique au pilote pour la routine de rappel.

Valeur de retour

RegisterNotificationCallback retourne STATUS_SUCCESS si l’appel enregistre correctement l’événement. Sinon, la routine retourne STATUS_INSUFFICIENT_RESOURCES pour indiquer qu’il existe des ressources insuffisantes qui sont disponibles pour terminer l’opération.

Pour plus d’informations, consultez Valeurs NTSTATUS.

Remarques

RegisterNotificationCallback inscrit la routine de rappel de notification auprès du pilote de bus HD Audio. Le pilote de bus AUDIO HD gère une liste des événements de notification inscrits et des routines de rappel pour chaque moteur DMA. Chaque fois que le moteur reçoit une interruption du CIO, tous les événements seront signalés et toutes les routines de rappel de notification seront appelées à IRQL=DPC avec l’horodatage QPC au moment où le CIO s’est produit.

Les routines de rappel de notification ne sont pas enregistrées en appelant UnregisterNotificationCallback avec les mêmes valeurs NotificationCallback et CallbackContext.

Le pilote de bus AUDIO HD conserve une référence sur le FDO après l’inscription jusqu’à ce que l’inscription correspondante soit appelée.

Exigences

Exigence Valeur
client minimum pris en charge 19H1
d’en-tête hdaudio.h (include hdaudio.h)
IRQL PASSIVE_LEVEL

Voir aussi

HDAUDIO_BUS_INTERFACE_V3

hdaudio.h