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

См. также