Freigeben über


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

HDAUDIO_BUS_INTERFACE_V3

rückruffunktion PREGISTER_NOTIFICATION_CALLBACK

hdaudio.h