Ok then. Do you already have a patch?
Well, it's not THAT expensive:
GetVolumeInformation( "C:", NULL, 0, NULL, NULL, NULL, szFs, 8);
The drive is already extracted in that function, so it's afterall not that much additional work. One probably ought to bench it properly, but..
Indeed, it seems that Micro$oft is very, very confused by DST. By "incorrect" they probably mean "incorrect in comparison to our already incorrect implementation of FILETIME values in WIN32_FIND_DATA", and not "incorrect" in the absolute sense of the word :)
Even with that quirky interpretation of "incorrect", it doesn't really explain how a reboot should change matters.
/.../ BTW, I just noticed the function "convert_filetime_to_time_t" in that context - which exactly implements my proposed calculation, albeit a little more expensive by using floats instead of INT64...
Yes, it could probably use a touch-up too.