共用方式為


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

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 之間通訊的迷你篩選回呼例程

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

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