Could you please add a /copy -p switch that instructs mIRC to create sparse blocks when it encounters a buffer full of zeros during a file copy? Simply use seek() instead write() and the file system will handle the rest for you as needed.
I would also like to know how large of a buffer does mIRC use in file copy? The minimum size sparse block NTFS will create is 64 KB. But all of that is handled at a very low level under the hood anyway. As long as it sees that a SEEK was performed instead of a WRITE, NTFS will attempt to conserve disk space by generating a "sparse" sector with the hole size information instead of a literal string of 0x00's on the platter. If you could please let the buffer be 64 or 128 KB when the -p switch is used, when identifying if the buffer is full of zeros, for maximum sparsificity.