Two things - First: Please, please don't make this the default! Once a file is sparsified, it cannot be unsparsified except by copying the contents to a new file! This seems like an optimization for a corner case is trying to cause a global change.
And: FSCTL_SET_SPARSE, used in the patch, is *not defined* in current w32api !!! Max.