寫操作前和操作後的回呼函式
在其 DriverEntry 例程中,小型篩選驅動程式可以對其需要篩選的每個 I/O 作業類型註冊最多一個 預操作回呼例程 和最多一個 後操作回呼例程。
不同於舊版文件系統篩選驅動程式,小型篩選驅動程式可以選擇要篩選的 I/O 作業類型。 小型篩選驅動程式可以為指定類型的 I/O 作業註冊預操作回呼例程,而不必註冊後操作回呼例程,反之亦然。 迷你篩選驅動程式只會接收已註冊前置或後置回呼例程的 I/O 作業。
操作前回呼例程類似於傳統篩選驅動程式模型中的分派例程。 當篩選管理員處理 I/O 作業時,它會呼叫每個在迷你篩選驅動程式實例堆疊中,並已針對該類型的 I/O 作業註冊的迷你篩選驅動程式的預操作回呼例程。 在驅動程式堆疊中,最高層的小型篩選驅動程式,即實例具有最高優先順序的小型篩選驅動程式,會最先接收到操作。 當迷你篩選驅動程式完成處理作業時,它會將作業傳回至篩選管理員,然後將作業傳遞至下一個最高的迷你篩選驅動程式等等。 當迷你篩選驅動程式實例堆疊中的所有小型篩選驅動程式都已處理 I/O 作業時,除非小型篩選驅動程式已完成 I/O 作業--篩選管理員會將作業傳送至舊版篩選和文件系統。
後操作回呼例程類似於舊版篩選驅動程式模型中的完成例程。 當 I/O 管理員將作業傳遞至文件系統和已註冊作業完成例程的舊版篩選時,I/O 作業的完成處理就會開始。 完成這些完成例程之後,篩選管理員會執行作業的完成處理。 然後,篩選管理員會呼叫迷你過濾器驅動程式實例堆疊中每個迷你過濾器驅動程式的後操作回呼常式,在此堆疊中針對這種類型的 I/O 操作註冊了該常式。 堆疊中位於底部的小型篩選驅動程式,即其實例具有最低序位的小型篩選驅動程式,會最先接收到作業。 當迷你篩選驅動程式完成處理作業時,它會將它傳回至篩選管理員,然後將作業傳遞至下一個最低的迷你篩選驅動程式等等。
本節包含: