Condividi tramite


Funzione AcxCircuitInitAssignAcxRequestPreprocessCallback (acxcircuit.h)

La funzione AcxCircuitInitAssignAcxRequestPreprocessCallback aggiungere un callback di preprocesso WDFREQUEST.

Sintassi

NTSTATUS AcxCircuitInitAssignAcxRequestPreprocessCallback(
  PACXCIRCUIT_INIT                  CircuitInit,
  PFN_ACX_OBJECT_PREPROCESS_REQUEST EvtObjectAcxRequestPreprocess,
  ACXCONTEXT                        DriverContext,
  ACX_REQUEST_TYPE                  RequestType,
  const GUID                        *Set,
  ULONG                             Id
);

Parametri

CircuitInit

Struttura ACXCIRCUIT_INIT che definisce l'inizializzazione del circuito. ACXCIRCUIT_INIT è un oggetto opaco utilizzato per l'inizializzazione del circuito. Utilizzare AcxCircuitInitAllocate per inizializzare la struttura ACXCIRCUIT_INIT.

EvtObjectAcxRequestPreprocess

Puntatore a un callback EVT_ACX_OBJECT_PREPROCESS_REQUEST.

DriverContext

Contesto del driver definito dall'oggetto ACXCONTEXT. Per altre informazioni sugli oggetti ACX, vedere Riepilogo degli oggetti ACX.

RequestType

Un ACX_REQUEST_TYPE enumerazione che definisce tipi di richiesta diversi, ad esempio AcxRequestTypeAny, AcxRequestTypeProperty e così via.

Set

GUID facoltativo per identificare un ID set di elementi specifico.

Id

ID per identificare un elemento specifico nell'ID set specificato.

Valore restituito

Restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo. In caso contrario, restituisce un codice di errore appropriato. Per altre informazioni, vedere Uso di valori NTSTATUS.

Osservazioni

Il driver può richiamare questa DDI più volte per configurare callback di pre-elaborazione diversi. ACX richiama il primo elemento che trova la corrispondenza con il tipo WDFREQUEST in ingresso specifico.

Esempio

Di seguito è riportato un esempio di utilizzo.

    // 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);

Requisiti ACX

versione minima di ACX: 1.0

Per altre informazioni sulle versioni di ACX, vedere panoramica della versione ACX.

Fabbisogno

Requisito Valore
intestazione acxcircuit.h
IRQL PASSIVE_LEVEL

Vedere anche