Обработка пользовательского интерфейса Windows очень сложна. Он включает в себя такие алгоритмы, как повышение приоритета при нажатии клавиш, но обычно он ожидает до следующего тиклета планировщика (в худшем случае, 30 мс в настольных системах и 60 мс в серверных системах), если другой процесс запрашивает полный цикл ЦП,
Чтобы преодолеть это, вам понадобится специальный драйвер клавиатуры, который будет обеспечивать событие с той же задержкой, но также измерять точное время. Точное измерение времени возможно в системах Windows, если динамическое переключение часов ЦП отключено (запись Lookup QueryPerformanceCounter (), вам необходимо знать, как вызывать его из DDK), и в этом случае событие клавиатуры будет по-прежнему иметь непредсказуемую задержку, исходное событие автобуса будет иметь правильную отметку времени. Тогда вы остаетесь только с задержкой шины, которая должна быть меньше стандартного отклонения ваших измерений. См. Также Что происходит с момента нажатия клавиши на клавиатуре, пока она не появится в вашем текстовом документе