虚拟驱动器映射到程序

时间:2011-10-19 14:46:22

标签: c# .net c++ windows shell

是否可以创建一个程序(最好是.NET)来创建一个虚拟驱动器号,但是当它被读取,写入或浏览一个独立的程序时会处理返回的内容?

虽然您可以通过将驱动器映射到TCP服务器,webDAV或类似的东西来实现,但我想知道是否可以使用内部链接完成。

这将用于受保护的存储。如果程序有密码,该程序会对驱动器中的所有文件进行加密和解密(因为它们被各种程序读取)。

3 个答案:

答案 0 :(得分:3)

您所谈论的是存储设备驱动程序,这是Daemon Tools和TrueCrypt等程序完成此类“虚拟”驱动器的方式。

但是,您可能不必深入研究内核来完成此任务。 Microsoft提供Windows用户模式驱动程序框架,旨在简化某些常见Windows驱动程序类型的开发。据我所知,您应该能够使用用户模式驱动程序框架开发虚拟存储驱动程序。只要你没有直接与硬件交互(就像内核模式设备驱动程序那样),你应该没问题。但是,您将无法在C#中执行此操作。你可能不得不使用C,尽管你可能会使用C ++。

答案 1 :(得分:1)

PowerShell已经通过其Provider模型支持这样的事情。证书存储区,Active Directory,IIS配置,SharePoint,......都使用相同的命令来查看和更新​​文件系统。

这是PowerShell的核心。 $foo是变量foo的值,${c:\foo.txt}是文件C:\foo.txt的内容,但就像变量一样使用。同样dir HKLM:\Software列出该注册表项的子键。

您可以自己编写提供商。

答案 2 :(得分:1)

有一个开源程序WinCDEmu可以将ISO映像挂载到虚拟驱动器。我想你将能够检查源代码,找出如何提供满足你想要的虚拟驱动器的方法。该项目是用C ++编写的。

它基于BazisLib,这是一个简化Windows驱动程序开发的框架。