Freigeben über


PREGISTER_NOTIFICATION_CALLBACK Rückruffunktion (hdaudio.h)

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

Siehe auch

HDAUDIO_BUS_INTERFACE_V3

hdaudio.h