Condividi tramite


Scrittura di routine di callback di preoperazione e postoperazione

Nella routine DriverEntry , un driver minifilter può registrare fino a una routine di callback di preoperazione e fino a una routine di callback di post-esecuzione per ogni tipo di operazione di I/O che deve filtrare.

A differenza di un driver di filtro del file system legacy, un driver minifilter può scegliere i tipi di operazioni di I/O da filtrare. Un driver minifilter può registrare una routine di callback di preoperazione per un determinato tipo di operazione di I/O senza registrare un callback di postoperazione e viceversa. Il driver minifilter riceve solo le operazioni di I/O per le quali ha registrato una routine di callback di preoperazione o postoperazione.

Una routine di callback di preoperazione è simile a una routine dispatch nel modello di driver di filtro legacy. Quando il gestore filtri elabora un'operazione di I/O, chiama la routine di callback di preoperazione di ogni driver minifilter nello stack di istanze del driver minifilter che ne ha registrato uno per questo tipo di operazione di I/O. Il driver minifilter più alto nello stack, ovvero quello con l'altitudine più alta, riceve prima l'operazione. Quando il driver minifilter termina l'elaborazione dell'operazione, restituisce l'operazione al gestore filtri, che quindi passa l'operazione al driver minifilter più alto successivo e così via. Quando tutti i driver minifilter nello stack di istanze del driver minifilter hanno elaborato l'operazione di I/O, a meno che un driver minifilter non abbia completato l'operazione di I/O, il gestore filtri invia l'operazione ai filtri legacy e al file system.

Una routine di callback di post-esecuzione è simile a una routine di completamento nel modello di driver di filtro legacy. L'elaborazione di completamento per un'operazione di I/O inizia quando il gestore di I/O passa l'operazione al file system e ai filtri legacy che hanno registrato routine di completamento per l'operazione. Al termine di queste routine di completamento, il gestore filtri esegue l'elaborazione del completamento per l'operazione. Gestione filtri chiama quindi la routine di callback di postoperazione di ogni driver minifilter nello stack di istanze del driver minifilter che ne ha registrato uno per questo tipo di operazione di I/O. Il driver minifilter inferiore nello stack, ovvero quello con l'altitudine più bassa, riceve prima l'operazione. Al termine dell'elaborazione dell'operazione, il driver minifilter lo restituisce al gestore filtri, che passa quindi l'operazione al driver minifilter più basso successivo e così via.

Contenuto della sezione

Registrazione di routine di callback di preoperazione e post-esecuzione

Filtro delle operazioni di I/O in un driver minifiltro

Scrittura di routine di callback di preoperazione

Scrittura di routine di callback postoperation

Modifica dei parametri per un'operazione di I/O

Determinazione del metodo di memorizzazione nel buffer per un'operazione di I/O

Accesso ai buffer utente per un'operazione di I/O