共用方式為


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

代表 KSPROPERTY SET 之 GUID 的指標,例如 KSPROPSETID_RtAudio。 如果指定 NULL 或GUID_NULL,則會針對符合 RequestType 的每個要求呼叫 EvtObjectAcxRequestPreprocess

Id

值,表示 KSPROPERTY 標識符。例如,使用 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

另請參閱