我有一個頂級微過濾器驅動程序和一個用戶模式服務,與Scanner MSDN example類似。Minifilter驅動程序:如何替換打開的文件內容?
我想讓我的用戶模式服務取代A.txt
文件內容,當它在記事本中打開時。
因此,在IRP_MJ_CREATE
後操作回調中,我向服務發送通知並等待它向該文件寫入新數據。
但服務無法打開A.txt
,因爲它已被記事本鎖定。
如何讓我的服務在不使用內核的情況下寫入數據FltWriteFile?
這樣做的最好方法是什麼?
也許取消文件打開,讓服務寫入數據並用相同的參數重新打開它,而不必離開操作後回調?
也許我應該在操作前覆蓋所需的訪問權限?
---
任何信息將不勝感激。如果你認爲這個問題缺乏細節,請告訴我。
正確。但是在術前,我不能獲取文件名的信息,所以對我來說沒有A.TXT比較。 – alekseyk
@aleksk,我想你應該能夠在獲取文件名使用FltGetFileNameInformation預創建。 – Rohan
我能夠通過修改操作前的共享訪問來實現此目的。
我還是與[FltGetFileNameInformation]混淆(http://msdn.microsoft.com/en-us/library/windows/hardware/ff543032(V = vs.85)的.aspx)文檔,指出FltGetTunneledName必須從-OP後叫了正確的文件名,如果FltGetFileNameInformation在預運算硬鏈接和重命名叫。謝謝。 – alekseyk