Yes, I understand what timeBeginPeriod does. It switches resolution of kernel scheduler. But it is still perfectly legal for Sleep to sleep 100ms if you call timeBeginPeriod(1), kernel scheduler granularity doesn't automatically guarantee precision of Sleep. It might, but that's "undocumented". So it can do whatever it wants.