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