а вот как сделать задержку в 10 мс
Вот так можно. Решение не мое, но интересное. Поток не будет занимать процессор. Только точно 10 мс не выйдет.
VOID FASTCALL Sleep(IN ULONG ulMilSecs)
{
KEVENT kEvent;
LARGE_INTEGER qTimeout;
qTimeout.QuadPart = 10000L;
qTimeout.QuadPart *= ulMilSecs;
qTimeout.QuadPart = -(qTimeout.QuadPart);
KeInitializeEvent(&kEvent,SynchronizationEvent,FALSE);
KeWaitForSingleObject((PVOID)&kEvent,Executive,KernelMode,FALSE,&qTimeout);
}
А можно использовать функцию KeDelayExecutionThread .