EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Missing "DateTime changeTime" argument in all relevant delegates

Also by EldoS: SecureBlackbox
200+ components and classes for digital security, signing, encryption and secure networking.
Posted: 11/14/2014 00:39:39
by Eli Zeitlin (Standard support level)
Joined: 12/21/2013
Posts: 2


Please take a look on FILE_BASIC_INFO structure:
It has the following 4 time fields:
  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

Eli from Microsoft

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.
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.
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?


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: BizCrypto
Components for BizTalk® and SQL Server® Integration Services that let you securely store and transfer information in your business automation solutions.



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