EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Can't open subdirectories

Also by EldoS: CallbackDisk
Create virtual disks backed by memory or custom location, expose disk images as disks and more.
Posted: 04/15/2016 17:43:34
by Andrew Rondeau (Basic support level)
Joined: 04/15/2016
Posts: 4

I'm currently trying to evaluate CBFS. I was able to successfully create a virtual drive, and I can see the root-level folder in Explorer. (Great so far!)

When I try to navigate into a subfolder, I get an error. I don't really understand why I'm getting this error, or what I'm doing wrong.

For example, the error says:
(Path name) is unavailable. If the location is on this PC, make sure the device or drive is connected or the disc is inserted, and then try again. If the location is on a network, make sure you're connected to the network or Internet, and then try again. If the location still can't be found, it might have been moved or deleted."

(I'm using Windows 10, recently updated, inside of VMware Fusion.)

A screenshot is attached that shows me viewing the root folder in drive S, which is the virtual drive that I created. You can see the error that Explorer displays when I try to navigate into a subfolder.

Posted: 04/16/2016 05:23:27
by Volodymyr Zinin (EldoS Corp.)

Thank you for interesting in our product. Is the problem reproducible with one of the Callback File System samples? If so please specify how to reproduce it. In the other case most probably the problem is in your implementation of the CBFS callbacks. Try to use Process Monitor from Microsoft in order to find what operation returns error. It is an utility which shows what happens on the file system level. Usually it is easy to correlate system operations with the CBFS callbacks. Then debug that callback and find why it returns error.

Posted: 04/18/2016 13:42:17
by Andrew Rondeau (Basic support level)
Joined: 04/15/2016
Posts: 4

ProcessExplorer tells me that "CreateFile" for the given path returns "Name Not Found"

When I put a breakpoint into my OnCreateFile callback, the breakpoint isn't hit.

Any ideas?


Posted: 04/18/2016 13:50:08
by Eugene Mayevski (EldoS Corp.)

Usually OnGetFileInfo is fired prior to OnOpenFile. Please try putting the breakpoint in it.

Also, are the names, shown in the Process Explorer, correct?

Sincerely yours
Eugene Mayevski
Posted: 04/18/2016 14:25:03
by Andrew Rondeau (Basic support level)
Joined: 04/15/2016
Posts: 4

Thanks Eugene,

Yes, I can hit a breakpoint in OnOpenFile.

I'm not really sure if the names shown in Process Explorer are correct. Explorer tends to scan folders when you least expect it, so I switched to cmd to try to simplify things.

What's odd is:
* dir s: One call to OnEnumerateDirectory, directoryInfo.FileName is "\\"
* dir "s:\For ELDOS (6528044)" Five calls to OnEnumerateDirectory, directoryInfo.FileName is "\\"

So perhaps the names shown in Process Explorer are incorrect? Perhaps I'm not setting a name correctly?
Posted: 04/18/2016 14:33:50
by Eugene Mayevski (EldoS Corp.)

We can only guess what happens with your code.

When enumeration of the root directory is done, are you reporting a directory called "For ELDOS (6528044)" with this exact name? Are you doing this once per enumeration?

Sincerely yours
Eugene Mayevski
Posted: 04/18/2016 16:05:35
by Andrew Rondeau (Basic support level)
Joined: 04/15/2016
Posts: 4

Thanks Eugene for all your help.

To answer your questions, yes, enumerating the root directory contains "For ELDOS (6528044)" and it's only returned once.

What's interesting is that I'm able to get the complete demo that I'm putting together to work with Dokany. (I can navigate the entire folder tree and read files when I use Dokany's driver and API.)

I've attached screenshots from dir "s:\Fake folder (2474519)\2.6." The one with PATH NOT FOUND uses ELDOS, the working one uses Dokany.

The attributes that Dokany returns for QueryAttributes are: FileSystemAttributes: Case Preserved, Case Sensitive, Unicode, ACLs, Read Only, 0x100, MaximumComponentNameLength: 256, FileSystemName: Syncplicity

The attributes that ELDOS returns for QueryAttributes are: FileSystemAttributes: Case Preserved, Unicode, Reparse Points, MaximumComponentNameLength: 260, FileSystemName: FAT32

I don't really understand what's different.

I'm also attempting the same experiment using VDisk (The C# version.) I can't seem to hit a breakpoint in CbFsGetFileInfo. It makes me think that something's different between my program in how it presents the virtual drive to the OS, but I can't seem to figure out what the difference is. It seems that in my program, the "dir" command wants to enumerate the parent directory first, but in VDisk, the "dir" command will directly enumerate a subdirectory.

Posted: 04/19/2016 05:02:47
by Eugene Mayevski (EldoS Corp.)

Dokany is completely irrelevant here. It has a different architecture and it proves nothing.

If you have a test case that reproduces your issue, you are welcome to post it to HelpDesk, we will try to find out what's the problem in the code.

Sincerely yours
Eugene Mayevski
Also by EldoS: BizCrypto
Components for BizTalk® and SQL Server® Integration Services that let you securely store and transfer information in your business automation solutions.



Topic viewed 3324 times

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


Back to top

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

Got it!