Функция AcxCircuitInitAssignAcxRequestPreprocessCallback (acxcircuit.h)
Функция AcxCircuitInitAssignAcxRequestPreprocessCallback добавляет обратный вызов предварительной обработки WDFREQUEST.
Синтаксис
NTSTATUS AcxCircuitInitAssignAcxRequestPreprocessCallback(
PACXCIRCUIT_INIT CircuitInit,
PFN_ACX_OBJECT_PREPROCESS_REQUEST EvtObjectAcxRequestPreprocess,
ACXCONTEXT DriverContext,
ACX_REQUEST_TYPE RequestType,
const GUID *Set,
ULONG Id
);
Параметры
CircuitInit
Структура ACXCIRCUIT_INIT, которая определяет инициализацию канала. ACXCIRCUIT_INIT является непрозрачным объектом, используемым для инициализации канала. Используйте AcxCircuitInitAllocate для инициализации структуры ACXCIRCUIT_INIT.
EvtObjectAcxRequestPreprocess
Указатель на обратный вызов EVT_ACX_OBJECT_PREPROCESS_REQUEST .
DriverContext
Контекст драйвера, определенный объектом ACXCONTEXT. Дополнительные сведения об объектах ACX см. в разделе Сводка по объектам ACX.
RequestType
Перечисление ACX_REQUEST_TYPE, определяющее различные типы запросов, например AcxRequestTypeAny, AcxRequestTypeProperty и т. д.
Set
Необязательный идентификатор GUID для идентификации определенного набора элементов.
Id
Идентификатор для отступа определенного элемента в указанном идентификаторе набора.
Возвращаемое значение
Возвращает значение STATUS_SUCCESS
, если вызов был успешным. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в разделе Использование значений NTSTATUS.
Комментарии
Драйвер может вызывать этот DDI несколько раз, чтобы настроить различные обратные вызовы предварительной обработки. ACX вызывает первый объект , который соответствует конкретному типу входящего WDFREQUEST.
Пример
Ниже приведен пример использования.
// Render callbacks.
EVT_ACX_OBJECT_PREPROCESS_REQUEST CodecR_EvtCircuitRequestPreprocess;
//
// Add circuit type.
//
AcxCircuitInitSetCircuitType(circuitInit, AcxCircuitTypeRender);
//
// Assign the circuit's pnp-power callbacks.
//
ACX_CIRCUIT_PNPPOWER_CALLBACKS_INIT(&powerCallbacks);
powerCallbacks.EvtAcxCircuitPowerUp = CodecR_EvtCircuitPowerUp;
powerCallbacks.EvtAcxCircuitPowerDown = CodecR_EvtCircuitPowerDown;
AcxCircuitInitSetAcxCircuitPnpPowerCallbacks(circuitInit, &powerCallbacks);
//
// Set circuit-callbacks.
//
status = AcxCircuitInitAssignAcxRequestPreprocessCallback(
circuitInit,
CodecR_EvtCircuitRequestPreprocess,
(ACXCONTEXT)AcxRequestTypeAny, // dbg only
AcxRequestTypeAny,
NULL,
AcxItemIdNone);
Требования ACX
Минимальная версия ACX: 1.0
Дополнительные сведения о версиях ACX см. в статье Обзор версий ACX.
Требования
Требование | Значение |
---|---|
Заголовок | acxcircuit.h |
IRQL | PASSIVE_LEVEL |