1

我正在考虑编写一个工具,将某些外部磁盘插入机器时以只读方式安装它们。在 MacOS 上,这对于磁盘仲裁框架来说非常简单。当新驱动器连接到机器时,它会从操作系统发出通知,并允许您否决、接受或更改安装选项(例如强制安装为只读等)在 Windows 中是否有与此等效的?

提前致谢。

4

1 回答 1

1

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

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

您还可以使用RegisterDeviceNotification更完整的信息,但我不相信它可以为您提供您正在寻找的控制。

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

为了更好地控制正在安装和卸载的设备,您必须编写一些内核模式代码,但至少从听起来可能有点超出您有兴趣考虑的事情的声音,至少目前是这样。

于 2011-11-02T16:53:14.937 回答