22

I'm trying to create a Windows Virtual Drive ( like c:\ ) to map a remote storage. The main purpose is to do it in a clear way to the user. Therefore the user wouldn't know that he is writing/reading from another site.

I was searching for available products, and i find that FUSE is not an option in Windows and WebDAV maps directly the drive, and i would like to build a middle layer between windows and remote storage to implement some kind of services. Another alternatives exists, such as Dokan, that is very expensive, and System.IO.IsolatedStorage Namespace, that doesn't seem to explicity create a new Windows Drive.

Probably pismo ( http://www.pismotechnic.com/ ) is the thing that mostly matches my requirements but I would know if there is another alternative, including some Windows ( C++ or .NET ) native API to do that.

Thanks for reading :)

HyLian
  • 4,999
  • 5
  • 33
  • 40

8 Answers8

20

As I see, there are several options to implement this.

The "native" one is creating a custom driver (.sys file) that intercepts the I/O operations. Microsoft calls it MiniFilter. This option is the toughest one but allows you full control.

The coward's ;) option is to use a existing library to do this, examples of this are Dokan, GPL (dokan-dev.github.io), Pismo, free (pismotec.com) or Callback File System (callback.com/cbfsconnect).

However if you don't have Windows as main target, you can use FUSE which is a pretty good option.

Richie Bendall
  • 7,738
  • 4
  • 38
  • 58
HyLian
  • 4,999
  • 5
  • 33
  • 40
  • 1
    I see that it's very old question but what approche did you choose and how usable it was? Thank you! – tonek Apr 28 '11 at 20:09
  • 1
    @tonek - We used Dokan, and well, playing with Windows Explorer and Filesystem issues is tough, but i think dokan is the best free option. If you want a paid one, go for Eldos. – HyLian May 03 '11 at 10:55
  • Had anyone tried http://www.codeproject.com/KB/winsdk/Galaxy_Toolkit.aspx ? I not yet give it a try, but from description, it is doing the similar thing. – VHanded Aug 18 '11 at 07:05
  • Looks at GalaxyTK just now, I think its only provide Windows Shell NameSpace Extension which can't use like a mapped drive (see MSalters reply to Paul-Jan below) – Eric F. Aug 25 '13 at 03:31
  • 1
    A lot of programs I have seen created virtual "mapped network drive", not virtual hard disk drive. Is this because the former is easier to implement? If I want the former for virtual data I/O (for example, a virtual network drive for a web site storage), is Prismo still the best choice? – Damn Vegetables Jul 26 '15 at 09:25
2

If you (or someone else) still mind coding the driver itself, there are several opensource and working prototypes already:

saulius2
  • 249
  • 4
  • 8
1

to use the SUBST command in a script launched by your app could be an option.

Jonathan
  • 11,809
  • 5
  • 57
  • 91
  • subst is a good option, but as long i would to implement a kind of middle layer, i would like to "catch" read and write events. I think that with subst I cannot implement that. Maybe i can make a "daemon" program which continously monitor the folder "substituted", but i prefer another option. – HyLian Jul 08 '09 at 09:44
0

MAP DRIVE : http://compnetworking.about.com/od/windowsxpnetworking/ht/mapnetworkdrive.htm

Virtual CD /DVD Drive http://www.associatedcontent.com/article/420958/how_to_create_a_virtual_drive_in_windows.html

Virtual Hard Drive use Virtual PC 2007

joe
  • 34,529
  • 29
  • 100
  • 137
0

You could write a Shell NameSpace Extension, allowing you to represent anything as a drive (with subfolders, files, custom menus and whatnot), but you'd have to build all functionality from scratch. The upside is there are a lot of samples on the net, like this one.

Paul-Jan
  • 16,746
  • 1
  • 63
  • 95
  • 2
    However, these objects only exist at Shell (Explorer) level. You cannot use them in CreateFile() calls. – MSalters Jul 14 '09 at 10:54
0

Have a look at this article. This is done using SUBST.exe present in Windows OS.

http://code-in-action.blogspot.com/2013/11/create-virtual-drive-through-command.html

MMH
  • 675
  • 5
  • 18
0

Our Callback File System, as mentioned above, is a supported product with a comprehensive feature set, samples and support. We also offer free non-commercial licenses.

Eugene Mayevski 'Callback
  • 45,135
  • 8
  • 71
  • 121
0

Create virtual hard drive in Windows 8.

http://ujspace.blogspot.com/2015/01/create-virtual-hard-drive-on-windows-8.html

Thanks