Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die RegisterNotificationCallback-Routine registriert eine Rückrufroutine, sodass sie DMA-Statusbenachrichtigungen mit genaueren Anzeigedauerinformationen 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 Context-Element der HDAUDIO_BUS_INTERFACE_V3-Struktur an.
Handle
Behandeln, das das DMA-Modul 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, während DMA voranschreitet. Abhängig vom Parameter für die Benachrichtigungsanzahl, der mit "AllocateDmaBufferWithNotification" verwendet wird, wird das registrierte Ereignis jedes Mal ein oder zwei Mal signalisiert, wenn das DMA den Audiopuffer übergibt.
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 vorhanden sind, um den Vorgang abzuschließen.
Weitere Informationen finden Sie unter NTSTATUS Values.
Bemerkungen
RegisterNotificationCallback registriert die Benachrichtigungsrückrufroutine mit dem HD-Audiobustreiber. Der HD-Audiobustreiber verwaltet eine Liste der registrierten Benachrichtigungsereignisse und Rückrufroutinen für jedes DMA-Modul. Jedes Mal, wenn das Modul einen IOC-Interrupt empfängt, werden alle Ereignisse signalisiert, und alle Benachrichtigungsrückrufroutinen werden bei IRQL=DPC mit dem QPC-Zeitstempel zum Zeitpunkt des Auftretens des IOC aufgerufen.
Benachrichtigungsrückrufroutinen werden durch Aufrufen von UnregisterNotificationCallback mit denselben NotificationCallback- und CallbackContext-Werten aufgehoben.
Der HD-Audiobustreiber erhält nach der Registrierung einen Verweis auf das FDO, bis die entsprechende Registrierung aufgerufen wird.
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | 19H1 |
| Kopfball | hdaudio.h (enthalten hdaudio.h) |
| IRQL | PASSIVE_LEVEL |