我的雇主要求我找到一种方法来制作一种服务,该服务在挂载虚拟驱动器时运行,并检查用户或外部进程是否尝试访问它,以防万一,该服务应通知负责管理驱动器的软件并卸载它。这是因为他们不希望没有人弄乱驱动器中的文件。
我试图在stackoverflow上查找一些问题,我发现的是:- 阻止驱动器目录中的文件;- 使用微筛选器创建驱动程序,以检查是否访问了文件;
但他们都没有真正回答我的问题。
我有创建和挂载驱动器以及卸载驱动器的代码,我也有使用 Directoryinfo 阻止文件的代码,但我不知道如何继续
有人可以告诉我我想要实现的目标是否可行,如果是的话,我应该采取什么途径!
正确的解决方案是使用文件系统筛选器驱动程序,它将同步检查对驱动器的访问(当请求来时(并阻止请求或执行任何其他操作。这可能需要在内核模式下进行一些工作,或者可以使用像 CBFS Filter 这样的组件(免责声明 - 我们维护该产品(,它为您提供了预定义的规则和在用户模式下动态处理所有请求的选项(通过事件(,有了它,您的任务在不到一个小时的编码中就可以解决。
内核模式驱动程序可以获取进程的凭据(名称、安全令牌、PID(,该进程打开文件或执行文件系统操作,并采取相应的操作。在 CBFS 筛选器中,此信息在事件处理程序中可用,因此应用程序可以对其进行响应。