共用方式為


使用者模式與迷你篩選之間的通訊

FltMgr 支援透過通訊埠在使用者模式 (UM) 應用程式和內核模式 (KM) 迷你篩選器之間進行通訊。 範例案例是防病毒軟體應用程式,其必須與 KM 迷你篩選對應項目通訊,以掃描檔案中是否有病毒和惡意代碼。

迷你篩選會指定要套用至通訊埠物件的安全性描述項,以控制埠上的安全性。 透過通訊埠進行的通訊不會進行緩衝,因此速度更快且效率更高。

UM 應用程式或服務可以回復來自迷你篩選器的訊息以進行雙向通訊。 通訊的建立方式如下:

  • 小型篩選驅動程式會呼叫 FltCreateCommunicationPort 來建立通訊伺服器埠。 作為監聽埠的建立者,迷你篩選器會立即開始監聽該埠上的連入連線。

  • 當 UM 應用程式或服務呼叫 FilterConnectCommunicationPort 嘗試連線到埠時,FltMgr 會呼叫迷你篩選程式的 ConnectNotifyCallback 回呼例程,並傳遞新建立連線的控制代碼。 當回呼完成時,FltMgr 接著會傳遞一個單獨的檔案句柄給 UM 呼叫端,以代表 UM 呼叫端到連線的端點。 UM 呼叫者可以使用這個控制碼,將多個 I/O 完成埠與監聽埠產生關聯。 這項功能對於需要同時處理大量 I/O 作業的應用程式很有用。

FltMgr 只有在 UM 呼叫端具有埠上安全描述元所指定的足夠存取權時,才會接受連線要求。 每個連接到埠的連線都會取得自己的訊息佇列與私人端點。

關閉端點 (核心或使用者) 會終止該連線。 當 UM 呼叫端關閉其端點的句柄時, FltMgr 會呼叫迷你篩選驅動程式的 DisconnectNotifyCallback 例程,讓迷你篩選驅動程式可以關閉其連線的句柄。

關閉通訊伺服器埠可防止新的連線,但不會終止現有的連線。 當迷你篩選驅動程式卸除時,FltMgr 會終止現有的連線。

UM 與 KM 之間通訊的 FltMgr 例程

FltMgr 提供下列支援例程,讓小型篩選程式與 UM 應用程式通訊:

UM 應用程式和服務可以使用下列系統提供的支援例程來與小型篩選驅動程式通訊:

UM 與 KM 之間通訊的 Minifilter 回呼函式

迷你篩選程式會實作下列回呼例程,以支援UM與 KM 之間的通訊。 它會在呼叫 FltCreateCommunicationPort 時傳遞這些例程的指標。

回呼例程名稱 回呼例程類型
ConnectNotifyCallback PFLT_CONNECT_NOTIFY
DisconnectNotifyCallback PFLT_DISCONNECT_NOTIFY
MessageNotifyCallback PFLT_MESSAGE_NOTIFY