EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Creating and reparsing virtual directories

Also by EldoS: Callback File System
Create virtual file systems and disks, expose and manage remote data as if they were files on the local disk.
Posted: 05/27/2014 14:42:38
by not sure (Standard support level)
Joined: 05/27/2014
Posts: 24

I'm trying to 1) create a virtual directory, and 2) add a reparse rule ex. (c:\test\virttemp -> c:\temp) to another location, but am having difficulty with explorer complaining the virtual directory doesn't exist.

I am unsure that I am creating virtual directories correctly. I'm just using normal .net directory.create after adding a filter callback rule, and then adding a reparse filename rule for the exact path as the mask (c:\test\virttemp).

Reparse rule works as expected when not specifying that directory is virtual on create / open as part of the respective callback handlers (code taken from createvirtsample).

Posted: 05/28/2014 08:34:19
by Vladimir Cherniga (Team)

This is an implementation issue. Reparse rule works on open/create file system dispatcher path. Virtual file create/open requests processed before the time when reparse rules are analyzed. So that both code paths are executed separately and reparse for virtual files doesn't work. We will check the code and resolve the issue with a next build of CallbackFilter.
Posted: 05/28/2014 09:30:04
by not sure (Standard support level)
Joined: 05/27/2014
Posts: 24

Thank you. I have been able to get the desired functionality at the directory level, but as you mention, at the file level it does not work. I will code around this issue for now.
Posted: 06/02/2014 14:33:42
by not sure (Standard support level)
Joined: 05/27/2014
Posts: 24

Correction. It does not work at either directory or file level, before I was not properly setting directory as virtual.
Posted: 06/04/2014 06:18:18
by Tim Deng (Basic support level)
Joined: 06/04/2014
Posts: 1

Hi, if we use virtual folder as reparse point, is it works or not? for example,
mount c:\temp -> c:\test\virttemp. I have tried this use Mapper sample code, however it promptes "incorrect function" when I tried to mount. is there any workaround?
Posted: 06/04/2014 06:23:08
by Vladimir Cherniga (Team)

Virtual files/directories reparse rule currently doesn't work. Please wait till next week for release.
Posted: 06/11/2014 14:29:33
by not sure (Standard support level)
Joined: 05/27/2014
Posts: 24

I have integrated the new version and it appears am able to reparse virtual files as expected. However, I am unable to get directories to be set as virtual at all. In .NET I call Directory.CreateDirectory, I do not get a callback for OnCreateFileC, but I do get many for OnOpenFileC, and in that handler I am setting VirtualFile = true, but it is not appearing to be recognized as virtual and the directory survives a reboot so it is not virtual.

For files I am using the CreateVirtualFile function as part of the .NET CallbackFilter type and this is properly recognized as being virtual.

Can someone please provide details on how to create a virtual directory?

Posted: 06/11/2014 15:15:10
by not sure (Standard support level)
Joined: 05/27/2014
Posts: 24

It was my mistake. I was missing CbFltCallbackFlags.CreateNotify, everything appears to be functional now. Thank you very much for your support!
Also by EldoS: CallbackDisk
Create virtual disks backed by memory or custom location, expose disk images as disks and more.



Topic viewed 4230 times

Number of guests: 1, registered members: 0, in total hidden: 0


Back to top

As of July 15, 2016 EldoS business operates as a division of /n software, inc. For more information, please read the announcement.

Got it!