Поделиться через


Функция 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

См. также раздел