次の方法で共有


AcxStreamInitAssignAcxRequestPreprocessCallback 関数 (acxstreams.h)

AcxStreamInitAssignAcxRequestPreprocessCallback 関数は、AcxRequestPreprocessCallback をストリームに割り当てます。

構文

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

パラメーター

StreamInit

ストリームの初期化を定義するために使用されるACXSTREAM_INIT オブジェクトによって定義されます。 ACX オブジェクトの詳細については、ACX - ACX オブジェクトの概要を参照してください。

EvtObjectAcxRequestPreprocess

要求の内部処理が実行される前に ACX フレームワークによって呼び出される EvtObjectAcxRequestPreprocess。

DriverContext

現在のドライバー コンテキストを表す省略可能な ACXCONTEXT オブジェクト。

RequestType

要求の種類の定義に使用される ACX_REQUEST_TYPE 列挙型。 AcxRequestTypeAny を指定すると、すべての要求に対して EvtObjectAcxRequestProcess が呼び出されます。

Set

KSPROPSETID_RTAUDIOなど、KSPROPERTY SET を表す GUID へのポインター。 NULL またはGUID_NULLを指定すると、RequestType に一致する要求ごとに EvtObjectAcxRequestPreprocess が呼び出されます。

Id

KSPROPERTY ID を表す値。たとえば、KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY 構造体を使用する A KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT です。 AcxItemIdAny を指定すると、指定した Set の各プロパティに対して EvtObjectAcxRequestPreprocess が呼び出されます。

戻り値

呼び出しが成功した場合に STATUS_SUCCESS を返します。 それ以外の場合は、適切なエラー コードが返されます。 詳細については、NTSTATUS 値 の使用に関するを参照してください。

備考

AcxStreamInitAssignAcxRequestPreprocessCallback は、ACX がフレームワーク処理を実行する前に、要求を処理する機会をドライバーに提供します。 ドライバーは、AcxStreamDispatchAcxRequest 呼び出して、ACX が要求を処理できるようにします。 ドライバーが要求自体を処理する場合は、WdfRequestComplete または WdfRequestCompleteWithInformation を呼び出して要求を完了できます。

ドライバーは、AcxStreamDispatchAcxRequest または WdfRequestComplete (または WdfRequestCompleteWithInformation) を呼び出す必要があります。 ドライバーは、要求でこれらの API を複数呼び出してはなりません。

ドライバーは、複数の AcxRequestPreprocessCallback を登録できます。 ACX フレームワークは、要求に一致する最初に割り当てられた AcxRequestPreprocessCallback を呼び出します。

使用例を次に示します。

    //
    // 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 の要件

最小 ACX バージョン: 1.0

ACX バージョンの詳細については、ACX バージョンの概要 参照してください。

必要条件

要件 価値
ヘッダー acxstreams.h
IRQL PASSIVE_LEVEL

関連項目

  • acxstreams.h ヘッダー する