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 ce 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 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 retournée

RegisterNotificationCallback retourne STATUS_SUCCESS si l’appel a correctement inscrit l’événement. Sinon, la routine retourne STATUS_INSUFFICIENT_RESOURCES pour indiquer que les ressources disponibles sont insuffisantes pour terminer l’opération.

Pour plus d’informations, consultez Valeurs NTSTATUS.

Remarques

RegisterNotificationCallback inscrit la routine de rappel de notification avec le pilote de bus Audio HD. Le pilote de bus Audio HD conserve 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 sont signalés et toutes les routines de rappel de notification sont 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’annulation correspondante soit appelée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge 19H1
En-tête hdaudio.h (inclure hdaudio.h)
IRQL PASSIVE_LEVEL

Voir aussi

HDAUDIO_BUS_INTERFACE_V3

PREGISTER_NOTIFICATION_CALLBACK fonction de rappel

hdaudio.h