http://bugs.winehq.org/show_bug.cgi?id=14914
--- Comment #4 from Marcus Blomenkamp mblomenk@gmx.de 2008-08-20 02:13:20 ---
Basically creating a file with requested size.
Yes exactly. But as long as you haven't written any data to it, it is a sparsefile. Running the same sequence of CreateFile,SetFilePointer,SetEOF under Windows also result in creating a file with requested size, however not as sparsefile.
My problem with sparsefiles are pressing in a particular application which creates several files of certain size in advance, and then later on writes data into them. Under Unix it results in severe fragmentation but under Windows it doesn't and all is fine.
Of course the Windows application _could_ initialize the files by writing sequentially up to the requested size. However it doesn't because it relies on the Windows API specification that says that the above sequence is enough to get a fully allocated file.
Windows creates sparse files/segments/blocks only when explicitly asked for. And this is a major difference to how Unix handles sparse files/segments/blocks. This difference should be accounted and handled in Wine IMHO. I do not have access to the application source code so changing it to work around Wine is not an option sadly.