EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Strange behavior according to OnEnumerateDirectory

Posted: 02/07/2011 05:06:20
by Naoki Takami (Standard support level)
Joined: 11/09/2009
Posts: 23

OS : Windows7 or Windows2008R2
CBFS : 3.1.85

1)Display the list in the folder by the Explorer.
Time until the list display is completed when the hierarchy of the tree exceeds three hierarchies increases rapidly.
ex)100 files in the folder.

At this time, the list is immediately displayed.

At this time, it will take three seconds by the time the folder is selected and the list is displayed.

When the call situation of each event was investigated in the program, Open and Close of folder_1 were called hundreds of times after OnEnumerateDirectory.
Open&Close is called hundreds of times in folder2 and folder3 respectively as the hierarchy increases.
Therefore, it comes to take seven seconds for the display at five hierarchies.
What is the reason being called for a large amount of Open&Close?

2)Movement and superscription preservation
The error dialog is displayed when moving on the terms and conditions stated below.
1.The test195 folder and the test196 folder are taken out of the appended Zip file, and it copies it onto the drive.
2.The test196 folder is moved to the test195 folder.
3.If the dialog of the superscription confirmation is displayed, it is specified that everything is overwrited.
As a result, the following error dialogs are displayed.
"Z:\test196\folder1\bbb\ddd is not Exist"
At this time, the movement processing is normally completed.
This dialog is not displayed for the file to exist in the ddd folder.

Someone, please teach the reason why such a strange phenomenon occurs.

[ Download ]
Posted: 02/07/2011 09:03:36
by Volodymyr Zinin (Team)

Lots of the Open and Close requests are likely because of creating of thumbnails for files by Explorer. In the case it's true you can significantly decrease it by the use of the network type of mounting points instead of the simple one (see description of the CBFS_SYMLINK_NETWORK flag in the CallbackFS documentation).
About the second question - run Process Monitor from sysinternals.com in order to see what I/O operations occur on the kernel level. Usually it isn't difficult to correlate these operations with CallbackFS callbacks. Set in Process Monitor to filter only I/O operations for your virtual disk (for example so - "Path"->"Begins with"->"X:", where "X:" is a drive letter for your disk) and then look for the incorrect/erroneous requests in the logs and correlate them with your CallbackFS callbacks implementation.
BTW using Process Monitor also can help for the question 1.
Posted: 02/14/2011 04:12:54
by Naoki Takami (Standard support level)
Joined: 11/09/2009
Posts: 23

I wish to express my gratitude for the giving information from you.

It was confirmed to be able to evade the situation of 1) by the above-mentioned evasion method.
2) is still being investigated.
When I discover the clue, it reports again.



Topic viewed 1194 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!