撰寫 Preoperation 和 Postoperation 回呼常式

在其 DriverEntry 常式中,迷你篩選驅動程式最多可以註冊一個 預先操作回呼常式 ,以及它需要篩選的每個 I/O 作業類型最多註冊一個後置回 呼常式

不同于舊版檔案系統篩選驅動程式,迷你篩選驅動程式可以選擇要篩選的 I/O 作業類型。 迷你篩選驅動程式可以註冊指定類型 I/O 作業的預先操作回呼常式,而不註冊後置回呼,反之亦然。 迷你篩選驅動程式只會接收其已註冊預先操作或後置操作回呼常式的 I/O 作業。

預先操作回呼常式類似于舊版篩選驅動程式模型中的分派常式。 當篩選管理員處理 I/O 作業時,它會在迷你篩選驅動程式實例堆疊中呼叫每個迷你篩選驅動程式的預先操作回呼常式,該堆疊已登錄此類型的 I/O 作業。 堆疊中最上層的迷你篩選驅動程式,也就是實例具有最高高度的驅動程式,會先接收作業。 該迷你篩選驅動程式完成處理作業時,會將作業傳回至篩選管理員,然後將作業傳遞至下一個最高迷你篩選驅動程式等等。 當迷你篩選驅動程式實例堆疊中的所有迷你篩選驅動程式都已處理 I/O 作業時,除非迷你篩選驅動程式已完成 I/O 作業--篩選管理員會將作業傳送至舊版篩選和檔案系統。

後置回呼常式類似于舊版篩選驅動程式模型中的完成常式。 當 I/O 管理員將作業傳遞給檔案系統和已註冊作業完成常式的舊版篩選時,I/O 作業的完成處理就會開始。 完成這些完成常式之後,篩選管理員會執行作業的完成處理。 接著,篩選管理員會呼叫迷你篩選驅動程式實例堆疊中每個迷你篩選驅動程式的後置回呼常式,該堆疊已登錄此類型的 I/O 作業。 堆疊中的底部迷你篩選驅動程式,也就是實例具有最低高度的驅動程式,會先接收作業。 當迷你篩選驅動程式完成處理作業時,會將它傳回至篩選管理員,然後將作業傳遞至下一個最低迷你篩選驅動程式等等。

本節包括:

註冊 Preoperation 和 Postoperation 回呼常式

篩選迷你篩選驅動程式中的 I/O 作業

撰寫預先操作回呼常式

撰寫後置回呼常式

修改 I/O 作業的參數

判斷 I/O 作業的緩衝方法

存取 I/O 作業的使用者緩衝區