PREGISTER_NOTIFICATION_CALLBACK Rückruffunktion (hdaudio.h)
Die RegisterNotificationCallback-Routine registriert eine Rückrufroutine, damit sie DMA-Statusbenachrichtigungen mit genaueren Zeitinformationen empfangen kann.
Syntax
PREGISTER_NOTIFICATION_CALLBACK PregisterNotificationCallback;
NTSTATUS PregisterNotificationCallback(
PVOID _context,
HANDLE Handle,
PDEVICE_OBJECT Fdo,
PHDAUDIO_DMA_NOTIFICATION_CALLBACK NotificationCallback,
PVOID CallbackContext
)
{...}
Parameter
_context
Gibt den Kontextwert aus dem Kontextelement der HDAUDIO_BUS_INTERFACE_V3-Struktur an.
Handle
Handle, das die DMA-Engine identifiziert. Dieser Handlewert wurde aus einem vorherigen Aufruf von AllocateCaptureDmaEngine oder AllocateRenderDmaEngine abgerufen.
Fdo
Die FDO, die den Rückruf besitzt. Der hdaudbus-Treiber nimmt einen Verweis auf diese FDO an, während der Rückruf registriert ist, um sicherzustellen, dass die Rückrufroutine gültig ist.
NotificationCallback
Die Rückrufroutine, die aufgerufen wird, um den Treiber zu benachrichtigen, wenn DMA voranschreitet. Abhängig vom Benachrichtigungsanzahlparameter, der mit AllocateDmaBufferWithNotification verwendet wird, wird das registrierte Ereignis für jedes Mal, wenn der DMA den Audiopuffer durchläuft, ein- oder zweimal signalisiert.
CallbackContext
Treiberspezifischer Kontextwert für die Rückrufroutine.
Rückgabewert
RegisterNotificationCallback gibt STATUS_SUCCESS zurück, wenn der Aufruf das Ereignis erfolgreich registriert. Andernfalls gibt die Routine STATUS_INSUFFICIENT_RESOURCES zurück, um anzugeben, dass nicht genügend Ressourcen zum Abschließen des Vorgangs verfügbar sind.
Weitere Informationen finden Sie unter NTSTATUS-Werte.
Hinweise
RegisterNotificationCallback registriert die Benachrichtigungsrückrufroutine beim HD Audio Bus-Treiber. Der HD Audio Bus-Treiber verwaltet eine Liste der registrierten Benachrichtigungsereignisse und Rückrufroutinen für jede DMA-Engine. Jedes Mal, wenn die Engine einen IOC-Interrupt empfängt, werden alle Ereignisse signalisiert, und alle Benachrichtigungsrückrufroutinen werden bei IRQL=DPC mit dem QPC-Zeitstempel zum Zeitpunkt des IOC aufgerufen.
Benachrichtigungsrückrufroutinen werden durch Aufrufen von UnregisterNotificationCallback mit denselben NotificationCallback- und CallbackContext-Werten nicht registriert.
Der HD Audio Bus-Treiber verwaltet nach der Registrierung einen Verweis auf die FDO, bis die entsprechende Aufhebung der Registrierung aufgerufen wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | 19H1 |
Kopfzeile | hdaudio.h (include hdaudio.h) |
IRQL | PASSIVE_LEVEL |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für