Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 |