[vbox-dev] Possibly a way to fix Ticket #6473 Wrong timestamp for files write in shared folders

Eugen Labun labun at gmx.net
Thu Mar 1 11:07:07 GMT 2012


Hi Frank,

thank you for reply!

IIUC, in general, RTFileWrite (on the host-OS) should (also in isolation!) mimic the behavior of the 
"write" system call of the guest-OS (that gets forwarded to RTFileWrite via guest additions[1]).

(Even though "mimic" could actually only mean to equally handle the modification time.)


For instance, [please use a monospaced font for this preformatted table]

Guest-OS    Host-OS    Behavior of RTFileWrite (on the Host)   Implementation of RTFileWrite
---------------------------------------------------------------------------------------------
Windows     Linux      as Windows' WriteFile,                  1) cache modif./creation time
                        i.e. not reseting modification             *of the file*
                        (and creation?) time.                      (how the guest-OS sees them),
                                                                2) call ´write´,
                                                                3) restore cached parts of timestamp

Linux       Windows    as Linux' write,                        1) call ´WriteFile´,
                        i.e. reset modification and             2) reset modif. and creation times
                        creation time!                          to the current *system time*
                                                                (how the guest-OS sees it)!

Windows     Windows    as Windows' WriteFile                   simply call ´WriteFile´

Linux       Linux      as Linux' write                         simply call ´write´



[1] Do I understand this correctly? Do guest additions really intercept system calls (such as 
WriteFile on Windows) and forward them (if desired) to the Host-OS VirtualBox services (such as 
RTFileWrite)?


Kind regards,
Eugen


P.S. The table is also attached as a text file (in case the formatting goes wrong here).



On 2012-02-29 22:33, Frank Mehnert wrote:
> Eugen,
>
> actually this was a helpful investigation. Indeed the file modification
> time is handled different between a Windows host and a Linux host when
> using RTFileWrite and a Windows guest does apparently first open the
> file, then sets the modification time and writes to that file afterwards.
>
> The fix is probably to cache the file modification time and set it
> before the file is closed (the Microsoft documentation for WriteFile
> says that the file must be closed to get the file modification time
> correctly applied).
>
> Kind regards,
>
> Frank
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: RTFileWrite-Table.txt
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20120301/1fa22cdf/attachment.txt>


More information about the vbox-dev mailing list