EVT_WDF_REQUEST_COMPLETION_ROUTINE funzione di callback (wdfrequest.h)

[Si applica a KMDF e UMDF]

La funzione di callback dell'evento Completamentoroutine di un driver viene eseguita quando un altro driver completa una richiesta di I/O specificata.

Sintassi

EVT_WDF_REQUEST_COMPLETION_ROUTINE EvtWdfRequestCompletionRoutine;

void EvtWdfRequestCompletionRoutine(
  [in] WDFREQUEST Request,
  [in] WDFIOTARGET Target,
  [in] PWDF_REQUEST_COMPLETION_PARAMS Params,
  [in] WDFCONTEXT Context
)
{...}

Parametri

[in] Request

Handle per un oggetto richiesta framework che rappresenta la richiesta di I/O completata.

[in] Target

Handle a un oggetto di destinazione I/O che rappresenta la destinazione di I/O che ha completato la richiesta.

[in] Params

Puntatore a una struttura WDF_REQUEST_COMPLETION_PARAMS contenente informazioni sulla richiesta completata. Per quanto riguarda la validità dei parametri di completamento, vedere la nota seguente.

[in] Context

Informazioni sul contesto fornite dal driver, che il driver specificato in una chiamata precedente a WdfRequestSetCompletionRoutine.

Valore restituito

nessuno

Osservazioni

Per registrare una funzione di callback di CompletamentoRoutine per una richiesta di I/O, un driver deve chiamare WdfRequestSetCompletionRoutine. Per altre informazioni su questa funzione di callback, vedere Completamento delle richieste di I/O.

La struttura dei parametri di completamento è completamente popolata con informazioni valide solo se il driver ha formattato la richiesta chiamando uno dei seguenti:

Se il driver ha formattato la richiesta usando WdfRequestFormatRequestUsingCurrentType o WdfRequestWdmFormatUsingStackLocation, solo il campo IoStatus nella struttura dei parametri di completamento è valido.

Il completamento di un driver KMDF può essere eseguito in IRQL <= DISPATCH_LEVEL indipendentemente dalla strutturaExecutionLevel specificata nella struttura WDF_OBJECT_ATTRIBUTES per l'oggetto richiesta I/O.

Esempio

Il tipo di funzione viene dichiarato in Wdfrequest.h, come indicato di seguito.

typedef VOID
  (EVT_WDF_REQUEST_COMPLETION_ROUTINE)(
    IN WDFREQUEST  Request,
    IN WDFIOTARGET  Target,
    IN PWDF_REQUEST_COMPLETION_PARAMS  Params,
    IN WDFCONTEXT  Context
    );

Per definire una funzione di callback di CompletamentoRoutine denominata MyCompletionRoutine, è prima necessario specificare una dichiarazione di funzione richiesta da SDV e altri strumenti di verifica, come indicato di seguito:

EVT_WDF_REQUEST_COMPLETION_ROUTINE  MyCompletionRoutine;

Implementare quindi la funzione di callback come indicato di seguito:

VOID
 MyCompletionRoutine (
    IN WDFREQUEST  Request,
    IN WDFIOTARGET  Target,
    IN PWDF_REQUEST_COMPLETION_PARAMS  Params,
    IN WDFCONTEXT  Context
    )
  {...}

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdfrequest.h (include Wdf.h)
IRQL <=DISPATCH_LEVEL

Vedi anche

WDF_REQUEST_COMPLETION_PARAMS

WdfRequestSetCompletionRoutine