AcxStreamInitAssignAcxRequestPreprocessCallback-Funktion (acxstreams.h)

Die AcxStreamInitAssignAcxRequestPreprocessCallback-Funktion weist einem Stream ein AcxRequestPreprocessCallback zu.

Syntax

NTSTATUS AcxStreamInitAssignAcxRequestPreprocessCallback(
  PACXSTREAM_INIT                   StreamInit,
  EVT_ACX_OBJECT_PREPROCESS_REQUEST EvtObjectAcxRequestPreprocess,
  ACXCONTEXT                        DriverContext,
  ACX_REQUEST_TYPE                  RequestType,
  const GUID                        *Set,
  ULONG                             Id
);

Parameter

StreamInit

Definiert durch ein ACXSTREAM_INIT-Objekt, das zum Definieren der Datenstrominitialisierung verwendet wird. Weitere Informationen zu ACX-Objekten finden Sie unter ACX – Zusammenfassung von ACX-Objekten.

EvtObjectAcxRequestPreprocess

Ein EvtObjectAcxRequestPreprocess, der vom ACX-Framework aufgerufen wird, bevor eine interne Verarbeitung der Anforderung ausgeführt wird.

DriverContext

Ein optionales ACXCONTEXT-Objekt, das den aktuellen Treiberkontext darstellt.

RequestType

Die ACX_REQUEST_TYPE Enumeration , die zum Definieren des Anforderungstyps verwendet wird. Wenn AcxRequestTypeAny angegeben ist, wird EvtObjectAcxRequestProcess für alle Anforderungen aufgerufen.

Set

Ein Zeiger auf eine GUID, die ein KSPROPERTY-SET darstellt, z. B. KSPROPSETID_RtAudio. Wenn NULL oder GUID_NULL angegeben sind, wird EvtObjectAcxRequestPreprocess für jede Anforderung aufgerufen, die Mit RequestType übereinstimmt.

Id

Ein -Wert, der eine KSPROPERTY-ID darstellt. Beispielsweise eine A-KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT , die eine KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY-Struktur verwendet. Wenn AcxItemIdAny angegeben ist, wird EvtObjectAcxRequestPreprocess für jede Eigenschaft für das angegebene Set aufgerufen.

Rückgabewert

Gibt zurück STATUS_SUCCESS , wenn der Aufruf erfolgreich war. Andernfalls wird ein geeigneter Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Verwenden von NTSTATUS-Werten.

Hinweise

AcxStreamInitAssignAcxRequestPreprocessCallback gibt dem Treiber die Möglichkeit, alle Anforderungen zu verarbeiten, bevor ACX die Frameworkbehandlung ausführt. Der Treiber kann AcxStreamDispatchAcxRequest aufrufen, damit ACX die Anforderung verarbeiten kann. Wenn der Treiber die Anforderung selbst verarbeitet, kann er WdfRequestComplete oder WdfRequestCompleteWithInformation aufrufen, um die Anforderung abzuschließen.

Der Treiber muss entweder AcxStreamDispatchAcxRequest oder WdfRequestComplete (oder WdfRequestCompleteWithInformation) aufrufen. Der Treiber darf nicht mehr als eine dieser APIs mit der Anforderung aufrufen.

Der Treiber kann mehrere AcxRequestPreprocessCallback registrieren. Das ACX-Framework ruft die erste zugewiesene AcxRequestPreprocessCallback auf, die einer Anforderung entspricht.

Beispiel

Das Beispiel für die Verwendung ist unten dargestellt.

    //
    // Intercept register and unregister events properties.
    //
    status = AcxStreamInitAssignAcxRequestPreprocessCallback(
                                            StreamInit, 
                                            EvtStreamRequestPreprocessRegisterNotificationEvent,
                                            (ACXCONTEXT)Circuit,
                                            AcxRequestTypeProperty,
                                            &KSPROPSETID_RtAudio, 
                                            KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT);

    //
    // Intercept all other RtAudio properties - this must be after the above Assign call
    // since the above Assign call is more specific.
    //
    status = AcxStreamInitAssignAcxRequestPreprocessCallback(
                                            StreamInit, 
                                            EvtStreamRequestPreprocessRtAudio,
                                            (ACXCONTEXT)Circuit,
                                            AcxRequestTypeProperty,
                                            &KSPROPSETID_RtAudio, 
                                            AcxItemIdAny);

ACX-Anforderungen

ACX-Mindestversion: 1.0

Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.

Anforderungen

Anforderung Wert
Header acxstreams.h
IRQL PASSIVE_LEVEL

Weitere Informationen