EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Missing "DateTime changeTime" argument in all relevant delegates

Also by EldoS: CallbackDisk
Create virtual disks backed by memory or custom location, expose disk images as disks and more.
#31402
Posted: 11/14/2014 00:39:39
by Eli Zeitlin (Standard support level)
Joined: 12/21/2013
Posts: 2

Hello,

Please take a look on FILE_BASIC_INFO structure:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364217(v=vs.85).aspx
It has the following 4 time fields:
Code
  LARGE_INTEGER CreationTime;
  LARGE_INTEGER LastAccessTime;
  LARGE_INTEGER LastWriteTime;
  LARGE_INTEGER ChangeTime; <<<<<<<<< MISSING ONE <<<<<<<<<<


Currently all CBFS related delegates support only creationTime, lastAccessTime and lastWriteTime.
Is there any particular reason why CBFS omitted "changeTime" field? I do aware that most of Windows shows only first 3, but tool like "Far Manager" shows all 4 times (hit CTRL+A to show file attributes).
More importantly file ChangeTime is used by "robocopy <src> <dst> /MIR" to detect if files are the same (in addition to size and other attributes) prior copying from source to destination. Assuming destination is CBFS mounted drive (ChangeTime is always NULL) and source is local drive (ChangeTime has value != NULL) robocopy will "detect" that are not the same and so ALWAYS will try to copy the file to destination.

To summarize I really would love if below scenario will work as expected (Z:\ is CBFS drive):
0) Z:\ is empty virtual drive, Let say C:\Temp\ has 1 file where all 4 time attributes are different. It is very common actually that ChangeTime != LastWriteTime
1) robocopy C:\Temp Z:\Temp /MIR <------- file is copied from C:\Temp to Z:\Temp
2) robocopy C:\Temp Z:\Temp /MIR <------- Expected: nothing should be copied; Actual: File copied again

Thanks,
Eli from Microsoft


#31403
Posted: 11/14/2014 01:58:48
by Volodymyr Zinin (EldoS Corp.)

ChangeTime isn't supported by CBFS now. To be more precise in the case the file system name is "NTFS" (CallbackFileSystem.FileSystemName property) the CBFS driver sets ChangeTime to be equal to LastWriteTime. For all other file system names ChangeTime is reported as 0 (the same way FATFS does).
Of course it's possible to add ChangeTime to the CBFS callbacks in future versions.
#31404
Posted: 11/14/2014 02:46:06
by Eli Zeitlin (Standard support level)
Joined: 12/21/2013
Posts: 2

Thanks for the quick reply. It will be really good to have it, primarily because of robocopy scenario as I mentioned above.
Hope this can be implemented as not a breaking change.

Thanks a lot for great support and fantastic library - CBFS.
#36119
Posted: 03/02/2016 15:15:23
by Andrew M (Basic support level)
Joined: 03/02/2016
Posts: 2

I am seeing what appears to be a related problem. robocopy generates

"ERROR 31 (0x0000001F) Time-Stamping Destination Director"

Is there no fix for this yet?

Thanks


#36120
Posted: 03/02/2016 18:05:51
by Eugene Mayevski (EldoS Corp.)

Andrew, I am afraid that this an issue which is completely unrelated to the original forum post. As such, we need to understand the details about it. I would welcome you to create a new post and provide as many details as possible. Also it's important that you check Mapper sample in your scenario. It has as few overhead as possible.


Sincerely yours
Eugene Mayevski
Also by EldoS: CallbackDisk
Create virtual disks backed by memory or custom location, expose disk images as disks and more.

Reply

Statistics

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