Ты прошёл весь список. Ничего не запущено, температуры в порядке, накопитель быстрый, игра на SSD — а машину всё равно дёргает. Диспетчер задач показывает простаивающую систему. График времени кадра показывает опоздавший кадр, но ничего не говорит о том, почему он опоздал.
Есть одна причина, которая объясняет ровно эту картину, и она невидима почти во всех инструментах, к которым обычно тянутся, — потому что происходит под ними.
Сначала честная фраза. Решение для драйвера, который держит ядро, — сам этот драйвер, от его производителя. Доля w0a — измерение, имя файла и исправление значений, которые оставили старые инструменты. Единственный переключатель, который он раньше предлагал рядом, — направление прерываний устройства на выбранные ядра — с 8 октября 2026 года работает только на чтение, потому что ни один игровой A/B-тест так и не показал выигранного им кадра.
Что на самом деле происходит
Устройству — сетевой карте, контроллеру диска, звуковому чипу, контроллеру USB — нужно внимание процессора. Оно поднимает прерывание, и Windows немедленно выполняет процедуру обработки прерывания этого драйвера. Эта процедура работает выше любого приоритета потоков, какой только есть: не «высокий приоритет», а вообще вне планировщика потоков. Пока она не вернётся, на этом ядре не может быть запланировано ничего другого.
Поскольку находиться там дорого, драйверы обязаны делать в этом месте минимум и откладывать остальное в отложенный вызов процедуры — DPC, — который выполняется мгновением позже, всё ещё впереди любого потока на этом ядре.
Пока выполняется одно или другое, это ядро ничего не рисует и не читает ввод. Если на нём был твой поток отрисовки — твой кадр опоздал. Если за ним стоял в очереди отчёт мыши — опоздал твой ввод. И ни одно из этих событий не попадает в диспетчер задач, потому что приписать его нечему: процесса нет.
Почему миллисекунда здесь — это много
Гоняться за этим заставляет арифметика:
- При опросе 1000 Гц отчёт приходит каждую миллисекунду. Удержание в 1 мс стоит одного отчёта.
- На 240 Гц кадр — это 4,2 мс. Удержание в 1 мс — это примерно четверть бюджета кадра, потраченная ни на что.
- От 4 мс и выше машина не удержит ровное время кадра, что бы ты ещё ни менял, — поэтому этот пункт стоит раньше всех остальных в твоём списке, а не после них.
Как это измерить и два способа, которыми измерение проваливается
Тест задержки в w0a открывает сессию трассировки ядра и записывает, сколько каждый драйвер удерживал ядро в течение двенадцати секунд настоящего движения мышью. Ему нужны права администратора. Почему тест просит 12 секунд движения мышью — про длительность; Как читать тест задержки — про цвета.
Два результата ответами не являются, и оба так и сообщаются, а не округляются до «чисто»:
- Сессию не удалось открыть. Трассировку ядра мог забрать себе драйвер античита. Закрой игру и измерь ещё раз.
- Сессия открылась и ничего не принесла. Ни на одной работающей Windows не бывает нуля выполнений драйверов за двенадцать секунд, так что это измерение, которого не было. Запусти ещё раз.
Есть и третий, более тонкий: сессия, потерявшая события, могла пропустить как раз самое долгое выполнение, поэтому страница говорит, что число может быть не настоящим худшим. Это тот же принцип, который сканер фризов применяет везде: правило, которое не смогло отработать, считается непроверенным, а не чистым.
Числа, точно
| Число | Правило |
|---|---|
| Длительность теста | По умолчанию двенадцать секунд: достаточно долго, чтобы поймать драйвер, который сбоит раз в секунду, и достаточно коротко, чтобы ты действительно двигал мышью всё это время. |
| Достаточно данных мыши | Две секунды собственных отчётов устройства и никогда не меньше 250 отсчётов; для мыши на 1000 Гц это 2000. Ниже этого 99-й процентиль — это второй или третий худший отсчёт, а не статистика. |
| Вердикт по драйверу | Худшее одиночное выполнение драйвера помечается как предупреждение начиная с 1 мс и как критическое начиная с 4 мс. Это границы, которыми эта область пользуется два десятилетия; это соглашение, а не измерение, которое w0a сделал на твоей машине. |
| Полное измерение | Цифры драйверов считаются полными, только когда трассировка ядра отработала и её сессия не потеряла ни одного события. Счётчик, который отказывается отвечать, считается прогоном с потерями, а не чистым. |
| Нижняя граница системы | 99-й процентиль мыши плюс половина интервала обновления плюс худшее выполнение драйвера — последнее только тогда, когда трассировка ядра была измерена, потому что прибавление нуля за неизмеренное ядро напечатало бы более красивое число ровно тогда, когда инструмент знает меньше всего. Это нижняя граница, а не сумма: собственный опрос ввода в игре, её очередь отрисовки, работа видеокарты и отклик матрицы — всё это вне её. Задержка ввода, которую не исправит ни одна программа — остальная часть цепочки. |
Как читать список
Каждый драйвер идёт со своим именем файла, самым долгим одиночным удержанием, своей долей измеренного времени и числом запусков. Сортируй по самому долгому удержанию — это то число, которое стоит тебе кадра.
Два прочтения, в которых ошибаются:
- Жёлтая строка — не проблема, которую обязательно надо чинить. Это кандидат. Без симптома она ничего не объясняет, и множество здоровых машин носят одну такую.
- Долгий обработчик прерывания хуже, чем такой же долгий отложенный вызов. Во время отложенного вызова прерывания всё ещё могут обслуживаться; во время обработчика прерывания на это ядро не проходит вообще ничего. Страница помечает случай, когда худшее у драйвера пришлось на прерывание.
Какой файл чему принадлежит и что делать с каждым
Имя файла — это вся улика, а решение определяется семейством, к которому оно относится:
| Семейство | Что это | Что действительно помогает |
|---|---|---|
| Беспроводная сеть | Драйвер адаптера Wi-Fi | Собственный драйвер производителя, а не универсальный из Центра обновления Windows. Кабель убирает эту строку целиком. |
| Проводная сеть | Сетевой контроллер на плате или отдельной картой | Драйвер производителя платы. Отключение модерации прерываний эту строку не лечит: без неё пакеты больше не собираются в пачки, каждый принятый пакет вызывает собственное прерывание, и драйвер работает не реже, а чаще. Поэтому страница Интернет не трогает модерацию прерываний на машинах меньше чем с шестью физическими ядрами — см. Сетевые твики. |
| Накопители | Контроллер на пути к твоему диску | На NVMe попробуй собственный драйвер Windows и вендорский и оставь тот, с которым тест задержки показывает меньшее значение. Сторонний драйвер накопителя стоит удалить. |
| USB | Хост-контроллер | Драйверы чипсета и перенос мыши в порт на плате, а не за хабом. |
| Звук | Кодек и всё, что на него навешано | Драйвер производителя; если не уходит, универсальный звуковой драйвер Windows обычно даёт меньше. По этому же пути работают RGB- и звуковые утилиты. |
| Дисплей | Драйвер видеокарты | Сайт производителя. Если началось после обновления — откатись на предыдущую версию. |
| Собственные компоненты Windows | Время, потраченное от имени другого драйвера | Обновлять тут самому нечего: починка драйверов выше укорачивает и эту строку. |
| Управление питанием | Путь, который меняет частоты и состояния простоя | Поднятие минимального состояния процессора и уменьшение глубины C-состояний в прошивке укорачивают его оба, и оба поднимают потребление в простое. Это размен, а не решение. |
Отдельной строки здесь заслуживает драйвер-фильтр. Программы, формирующие трафик и перенаправляющие соединения, пропускают каждый пакет через собственный драйвер, и многосекундные сетевые рывки — их самый известный побочный эффект; сканер фризов называет их, когда находит. То же относится к макро-пакетам и утилитам подсветки, которые ставят фильтр на пути мыши и клавиатуры.
Решение и не-решения
Решение — обновить именно этот драйвер, у производителя железа. Не всю систему, не программой-обновлятором драйверов и не переустановкой Windows. Страница называет файл точно, чтобы ты мог выяснить, какому устройству он принадлежит.
Что это не чинит и по этой причине здесь отвергается: подмена разрешения таймера, значения управления памятью ядра (DisablePagingExecutive, LargeSystemCache) и списки значений реестра, которые ходят под словом «задержка». Ни одно из них не меняет того, сколько драйвер держит ядро, потому что держит его код самого драйвера. Отключать устройства наугад — тоже не диагностика; хотя отключить одно устройство как проверку, с измерением до и после, — совершенно нормальный опыт. То же касается значений уровня устройства, которые ходят вместе с этими списками: MSISupported переключает режим прерываний устройства, и если выставить его неправильно, результатом может стать чёрный экран, поэтому w0a его никогда не пишет, а карточка восстановления направления прерываний ниже его не трогает.
Две настройки рядом, которых касается w0a
Политика прерываний устройства: только чтение, с карточкой восстановления
Где Windows её хранит: для каждого устройства отдельно, в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\<device>\<instance>\Device Parameters\Interrupt Management\Affinity Policy. DevicePolicy (DWORD) выбирает, как размещаются прерывания устройства; когда он равен 4, «указанные процессоры», AssignmentSetOverride — маска процессоров, которыми они могут пользоваться.
Значение Windows по умолчанию: ни одного из двух значений нет. Тогда Windows сама вычисляет размещение, и Microsoft рекомендует политику по умолчанию везде, где она применима.
Что делает w0a: читает эти значения и не пишет их. С 8 октября 2026 года направления, которое он раньше предлагал со страницы «Тест задержки», больше нет, по трём причинам: ни один игровой A/B-тест не показал выигранного им кадра, Microsoft рекомендует размещение, которое вычисляет Windows, а неправильная маска — это устройство, которое не запускается.
Путь назад: если какой-то инструмент закрепил прерывания устройства и что-то сломалось — отваливается мышь, «Код 10» в диспетчере устройств, — карточка Направление прерываний устройства удаляет оба значения со всех устройств PCI, включая направление, оставленное старыми версиями w0a. Она просит перезагрузку, только если действительно что-то удалила, и не трогает MSISupported.
«Под нагрузкой: отключить управление потоком, модерацию прерываний и объединение сегментов» (страница «Интернет»)
Что пишет: 0 в ключевое слово *FlowControl сетевого адаптера — на каждом адаптере, который его объявляет. *InterruptModeration, *RscIPv4 и *RscIPv6 пишутся только на машинах минимум с шестью физическими ядрами и только на адаптерах, о которых известно, что они работают медленнее 2,5 Гбит/с; на этих машинах галочка также выключает объединение сегментов на уровне сетевого стека, если оно ещё не выключено.
Почему на машинах поменьше модерация остаётся включённой: когда выключены и модерация, и объединение, каждый принятый пакет становится собственным прерыванием, а не одним на интервал модерации, и нагрузка отложенных вызовов ложится на ядро, которое принимает. Так что выключение модерации — не способ укоротить строку сетевого драйвера в тесте задержки: по собственному описанию w0a, оно убирает ожидание в десятки-сотни микросекунд, которое пакет проводит в адаптере, пока не истечёт таймер пачки, а добавляет прерывание на каждый пакет. Его влияние на список драйверов не измерялось. Если твоя строка — сетевой драйвер, прогони тест с применённой галочкой и без неё.
Что обещает сама галочка: микросекунды, в пинге под нагрузкой. Её сообщение говорит, что средний пинг не меняется.
Когда вступает в силу: когда адаптер перезапускается; w0a просит перезагрузку всякий раз, когда что-то записал.
Путь назад: карточка Разгрузка сетевого адаптера возвращает разгрузки, модерацию прерываний, Energy Efficient Ethernet, выборочную приостановку и приёмные буферы к собственным значениям драйвера по умолчанию — таким, какими их объявляет драйвер.
Проверь сам
Эти команды только читают. В командной строке или PowerShell:
reg query "HKLM\SYSTEM\CurrentControlSet\Enum\PCI" /s /v DevicePolicy
reg query "HKLM\SYSTEM\CurrentControlSet\Enum\PCI" /s /v AssignmentSetOverride
Ответ о том, что поиск завершён и совпадений нет (в англоязычной Windows — End of search: 0 match(es) found.), значит, что ни одно устройство не несёт переопределения: это значение Windows по умолчанию. Совпадение выводится под разделом, в котором оно найдено, и PCI-часть этого пути указывает на устройство.
В PowerShell, для сетевого адаптера:
Get-NetAdapterAdvancedProperty -Name "*" -RegistryKeyword "*FlowControl","*InterruptModeration","*RscIPv4","*RscIPv6" -AllProperties
Эта команда выводит текущую настройку каждого адаптера для четырёх ключевых слов, которые может записать галочка со страницы «Интернет». Адаптер, который не появляется для какого-то ключевого слова, его не объявляет, и галочка там ничего не пишет.
Потом измерь ещё раз
Тот же метод, те же двенадцать секунд, та же машина. Страница сравнивает с твоим предыдущим прогоном и изменение меньше 5% показывает как отсутствие изменений, а не как улучшение, потому что два прогона на нетронутой машине и так расходятся на несколько процентов — рука каждый раз движется по-другому.
Если строка драйвера опустилась, а фризы остались, ты узнал кое-что настоящее: причина была не в этом, а остальной список лежит в Почему игры фризят на Windows 11. Если же у тебя частота кадров падает и остаётся внизу, а не дёргается рывком, это было не оно с самого начала — тогда нужен список из Внезапные просадки FPS в играх.
Похожие статьи
- Как читать тест задержки
- Почему игры фризят на Windows 11
- Как уменьшить input lag в CS2 и других играх: что может программа, а что нет
- Что ищет сканер фризов
- Почему тест просит 12 секунд движения мышью
- Сетевые твики
Играешь в CS2? Какие параметры запуска ещё что-то делают и где в меню видео на самом деле лежат кадры: Как повысить FPS в CS2 и откуда берутся микрофризы: чек-лист по замерам
Эта страница помогла?
Чего не хватило или что не сработало? Мы читаем каждый такой ответ.
Если эта страница не решила проблему, напиши нам — скажи, какую статью ты читал, и мы её исправим.