Я не уверен, что понимаю связь перехвата QueryPerformanceCounter с замедлением описанного вами процесса. Возможно, если вы уточните исходный вопрос или комментарий, я могу помочь вам в дальнейшем.
Чтобы ответить на ваш вопрос, вы можете использовать cpustres.exe из набора ресурсов Windows 2000, чтобы загрузить вашу систему, вызывая переключение контекста. Если вы загрузите достаточную нагрузку и перепишете все доступные процессоры, вы замедлите свой процесс. В зависимости от уровня нагрузки, выбранного вами в настройках cpustres, вы можете сильно или немного замедлить процесс.
Если вы хотите программно замедлить процесс более контролируемым образом, не прерывая его, если это игра, вы можете использовать ответ Касабланки, но заменить Sleep (10) на:
// Turn off optimizations to make sure the busy wait loops do
// not get optimized out!
HANDLE hThread = ...; // thread that you want to slow down
for (;;) {
SuspendThread(hThread); // Do this for each process thread
// Busy wait for pause (possibly small)
const DWORDLONG pauseFactor=1000; // In cycles
DWORDLONG start=__rdtsc();
while (__rdtsc()-start<pauseFactor)
;
ResumeThread(hThread); // Do this for each process thread
// Busy wait for resume
const DWORDLONG runFactor=1000; // In cycles
DWORDLONG start=__rdtsc();
while (__rdtsc()-start<runFactor)
;
}