ULARGE_INTEGER consists of two unsigned values. Unsigned values ββare guaranteed to be rounded, so in a sense they cannot be "overflowed."
If the wrap is complete, u.LowPart will be less than 10,000. You probably want to:
u.LowPart += 10000; if (u.LowPart < 10000) u.HighPart++;
... but which compiler still does not support 64-bit integers? They have been required by the C ++ standard since 2011 and the C standard since 1999. So what you really want:
u.QuadPart += 10000;
source share