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 ヘッダー を する