PREGISTER_EVENT_CALLBACK Rückruffunktion (hdaudio.h)

Die RegisterEventCallback-Routine registriert eine Rückrufroutine für eine nicht angeforderte Antwort von einem Codec oder Codecs.

Der Funktionszeigertyp für eine RegisterEventCallback-Routine ist wie folgt definiert.

Syntax

PREGISTER_EVENT_CALLBACK PregisterEventCallback;

NTSTATUS PregisterEventCallback(
  [in]  PVOID _context,
  [in]  PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine,
  [in]  PVOID Context,
  [out] PUCHAR Tag
)
{...}

Parameter

[in] _context

Gibt den Kontextwert aus dem Kontextelement der HDAUDIO_BUS_INTERFACE-, HDAUDIO_BUS_INTERFACE_V2- oder HDAUDIO_BUS_INTERFACE_BDL-Struktur an.

[in] Routine

Funktionszeiger auf eine Rückrufroutine. Dieser Parameter muss ein gültiger Nicht-NULL-Funktionszeiger vom Typ PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK sein. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

[in] Context

Gibt einen Kontextwert für die Rückrufroutine an. Der Aufrufer wandelt den Kontextwert in den Typ PVOID um. Wenn ein Codec eine nicht angeforderte Antwort generiert, die das angegebene Tag enthält, übergibt der HD Audio-Bustreiber den Kontextwert als Aufrufparameter an die Rückrufroutine.

[out] Tag

Ruft einen Tagwert ab, der die nicht angeforderte Antwort identifiziert. Dieser Parameter verweist auf eine vom Aufrufer zugewiesene UCHAR-Variable, in die die Routine den Tagwert schreibt. Der Aufrufer sollte diesen Tagwert beim Programmieren des Codecs oder der Codecs angeben, um die nicht angeforderte Antwort zu generieren. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

Rückgabewert

RegisterEventCallback gibt STATUS_SUCCESS zurück, wenn der Aufruf bei der Registrierung des Ereignisses erfolgreich ist. Andernfalls gibt die Routine einen entsprechenden Fehlercode zurück. Die folgende Tabelle zeigt eine mögliche Rückgabe status Code.

Rückgabecode Beschreibung
STATUS_INSUFFICIENT_RESOURCES
Gibt an, dass nicht genügend Ressourcen zum Abschließen des Vorgangs verfügbar sind.

Hinweise

Diese Routine registriert eine Rückrufroutine für eine nicht angeforderte Antwort von einem Codec. Die Routine gibt ein Tag aus, um die nicht angeforderte Antwort zu identifizieren. Wenn der HD Audio-Bustreiber auf eine unerwünschte Antwort eines beliebigen Codecs mit einem übereinstimmenden Tagwert stößt, ruft die Routine die angegebene Rückrufroutine bei IRQL DISPATCH_LEVEL auf und übergibt den angegebenen Kontextwert als Aufrufparameter an die Routine.

Nach dem Aufruf von RegisterEventCallback ist der Funktionstreiber für die Programmierung des Codecs oder der Codecs verantwortlich, um unerwünschte Antworten mit dem angegebenen Tag zu generieren.

Die Routine weist jeder registrierten Rückrufroutine ein eindeutiges Tag zu. Die eindeutige Zuordnung zwischen Tag und Rückrufroutine bleibt bestehen, solange die Rückrufroutine registriert bleibt. Der Funktionstreiber kann die Registrierung einer Rückrufroutine löschen, indem er UnregisterEventCallback aufruft.

Derzeit kann der Bustreiber bis zu 64 eindeutige Tags pro Codec bereitstellen.

Der Rückrufparameter ist ein Funktionszeiger auf eine Rückrufroutine im Funktionstreiber. Der Funktionszeigertyp für die Rückrufroutine ist definiert wie folgt:

typedef VOID
  (*PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)
    (HDAUDIO_CODEC_RESPONSE, PVOID);

Der erste Aufrufparameter ist eine Struktur vom Typ HDAUDIO_CODEC_RESPONSE , die die Antwort des Codecs auf den Befehl angibt. Diese Struktur wird als Wert übergeben. Der zweite Aufrufparameter ist der callbackContext-Wert , der zuvor an RegisterEventCallback übergeben wurde. Der HD Audio-Bustreiber ruft die Rückrufroutine bei IRQL DISPATCH_LEVEL auf.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile hdaudio.h (einschließlich Hdaudio.h)
IRQL PASSIVE_LEVEL (siehe Abschnitt "Hinweise")

Weitere Informationen

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2

HDAUDIO_CODEC_RESPONSE

Aufheben der RegistrierungEventCallback  

hdaudio.h