2010-12-13 42 views
2

用於測試和開發目的模擬文件中的錯誤(例如ERROR_ACCESS_DENIED),這將是很好以某種方式模擬(僞)文件訪問錯誤本地文件。例如,即使應用程序使用適當的限制性共享標誌正確打開文件,仍然會發生嘗試訪問該文件(通過任何Win32 API函數或您最喜歡的框架,這些框架在內部只會調用任何Win32 API函數)可能會失敗。在Windows

我唯一能夠追蹤到的例子是機器上的病毒掃描器,但我猜可能還有其他原因。 (在this question's comment, Luke mentions一些有關「文件系統過濾驅動程序」。)

FWIW,我知道的幾種可能性,以「模擬」文件的問題,我做考慮好解決方案,要麼是因爲它們需要大量的人工作業或者是因爲他們不適合於每一個應用程序/文件:

  • 將文件的網絡驅動器或可移動存儲設備上 - 這樣你可以搞砸設備(拔下,磁盤已滿,... )。
  • 打開Process Explorer中的應用程序並關閉要測試的文件的句柄。

所以,真正的問題是,如果有可以搞亂文件訪問(NTFS驅動器上),即使應用程序已已經與適當打開文件(用於任何((半)自動化)工具應用程序)共享標誌。

+1

我不知道這種隨時可用的工具,但使用虛擬文件系統驅動程序或文件系統過濾器驅動程序可以產生這種行爲。我們的產品可以讓您在不進入內核模式的情況下構建這樣的工具 – 2010-12-13 16:03:39

回答

1

Holodeck聲稱允許Win32 API掛鉤,這將使您能夠根據故障注入的需要操作返回碼。

如果您感興趣的API集定義明確,您可以使用描述爲here的導入地址表方法自行完成此操作。