Windows上是否有与Mac OS上的DiskArbitration框架相同的内容?

时间:2011-11-02 16:21:18

标签: c# winapi diskarbitration

我正在寻找一种工具,当它们插入机器时,将某些外部磁盘安装为只读。在MacOS上,这对于磁盘仲裁框架来说非常简单。当新驱动器连接到计算机并且允许您否决,接受或更改安装选项(例如强制挂载为只读等)时,它会从操作系统发出通知。在Windows中是否有与此相同的内容?

提前致谢。

1 个答案:

答案 0 :(得分:1)

没有直接的等价物。出于安全原因,Windows不会给用户模式代码提供那么多控制权(例如,考虑病毒决定阻止您安装任何可能包含反病毒程序的磁盘)。

WM_DEVICECHANGE消息在事件发生时通知用户模式应用程序,但它非常有限 - 特别是,当您可以否决设备的删除时,您不是允许对添加设备进行多次(任何?)控制。

您也可以使用RegisterDeviceNotification获取更完整的信息,但我不相信它会为您提供您正在寻找的控件。

至少据我所知,.NET不直接支持RegisterDeviceNotification,所以如果你想在C#中使用它,你可能必须通过P / Invoke来实现。

为了更好地控制正在安装和卸载的设备,您必须编写一些内核模式代码,但至少从可能超出您感兴趣考虑的事物的声音来看,至少对于那一刻。