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 物件摘要

EvtObjectAcxRequestPreprocess

EvtObjectAcxRequestPreprocess,會在執行要求的任何內部處理之前,由 ACX 架構呼叫。

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

另請參閱