Gestione di IRP WDM all'esterno del framework

[Si applica solo a KMDF]

Quando il gestore I/O distribuisce un pacchetto di richiesta I/O (IRP) a un driver basato su framework, il framework intercetta l'IRP e quindi esegue una delle operazioni seguenti:

  • Elabora l'IRP. Ad esempio, il framework elabora i provider di accesso che contengono IRP_MJ_PNP e IRP_MJ_POWER codici di funzione di I/O principali. Durante l'elaborazione di questi IP, il framework potrebbe comunicare con il driver chiamando le funzioni di callback degli eventi del driver.

  • Crea un oggetto richiesta framework per LRP e recapita l'oggetto richiesta a una delle code I/O del driver in modo che il driver possa riceverlo, in genere in un gestore di richieste e elaborarlo. Il framework gestisce le richieste di controllo di I/O di lettura, scrittura e dispositivo in questo modo.

  • Passa l'IRP al driver inferiore successivo (se il driver è un driver di filtro) o completa l'IRP con un valore di stato di STATUS_INVALID_DEVICE_REQUEST (se il driver non è un driver di filtro) perché l'IRP contiene un codice di funzione I/O che il framework non supporta.

A volte un driver deve gestire un codice di funzione di I/O che il framework non supporta.

Raramente, un driver potrebbe dover pre-elaborare un'IRP prima che il framework lo gestisca oppure il driver potrebbe dover eseguire l'elaborazione di un'IRP dopo il framework e i driver di livello inferiore.

Come parte del pre-elaborazione, un driver potrebbe dover inoltrare un'IRP a una coda di I/O specifica.

Gli argomenti seguenti descrivono queste situazioni: