2011-11-02 65 views
1

我正在研究編寫一個工具,在將某些外部磁盤插入機器時將其掛載爲只讀。在MacOS上,這對於磁盤仲裁框架來說非常簡單。它將新驅動器連接到計算機並允許您否決,接受或更改安裝選項(例如強制掛載爲只讀等)時,從OS發送通知。在Windows中是否有與此等效的內容?在Windows上,Mac OS上的DiskArbitration框架有相當於什麼?

在此先感謝。

回答

1

沒有直接的等價物。出於安全原因,Windows不會給用戶模式代碼提供太多的控制權(例如,考慮病毒決定阻止您掛載任何可疑的可能包含防病毒程序的磁盤)。

WM_DEVICECHANGE消息通知的事情用戶模式應用程序,因爲它們發生,但它是相當有限 - 特別是當你可以否決設備的去除,你不允許多(任意?)控制添加設備。

您也可以使用RegisterDeviceNotification獲得更完整的信息,但我不相信它會給你所需要的控制權。

至少據我所知,.NET不直接支持RegisterDeviceNotification,所以如果你想從C#使用它,你可能需要通過P/Invoke來完成。

爲了更好地控制正在安裝和未安裝的設備,您必須編寫一些內核模式代碼,但至少從可能超出您有興趣考慮的內容的聲音來看,至少目前來說。

+0

這就是我所擔心的。我們絕對沒有考慮進入內核級代碼。謝謝(你的)信息。 –