Можете ли вы просто вызвать SetWaitableTimer с очень большим временем, которое никогда не произойдет? А затем позвоните еще раз, как только вы узнаете реальное время.
Обновление: Хак или нет, документы довольно ясно показывают, что ожидаемый таймер m-r "остается в сигнальном состоянии до тех пор, пока не будет вызван SetWaitableTimer". Сдается мне, что это функция, которую вы собираетесь использовать. Вам просто понадобится хорошая константа RESET_TIMER, которая установлена в -2 ^ 63 или что-то в этом роде.