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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour