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 ID 的值。例如,使用 KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY 结构的 A KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT。 如果指定 AcxItemIdAny,将为指定集的每个属性调用 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 |