PDC_WATCHDOG_TIMEOUT (0x14F) — ноутбук просыпается/садится в Modern Standby: как исправить (2025)

PDC_WATCHDOG_TIMEOUT (0x14F) — это таймаут в «глубоких» компонентах питания. На практике виноват драйвер, который некорректно ведёт себя в режиме Modern Standby (S0): сетевые/BT‑адаптеры, HID/I2C‑тачпады, датчики. Ниже — план с командами и понятными проверками.

Коротко: что сделать сразу

  • Обновите BIOS/UEFI, драйверы чипсета/питания, BT/Wi‑Fi и HID/I2C.
  • Отключите таймеры пробуждения и лишние «будильники» (мыши/клавы/BT/сетевые).
  • Проверьте powercfg /sleepstudy и /energy, чтобы увидеть виновников.
  • Выберите план «Сбалансированный» и отключите агрессивную экономию PCIe/USB на тест.
Разобраться вместе? Подключусь, соберу sleepstudy/energy, вычищу «будящие» устройства, обновлю нужные драйверы и поймаю виновника дампом.

1) Отчёты питания: sleepstudy и energy

CMD (Администратор) — выполнять по одной:

powercfg /a
powercfg /sleepstudy
powercfg /energy
start %USERPROFILE%\energy-report.html

Sleepstudy покажет сессии S0 и устройства, которые держали систему «проснувшейся».

2) Чистим источники пробуждения

CMD/PowerShell (Администратор) — выполнять по одной:

powercfg -devicequery wake_armed
powercfg -devicedisablewake "Название устройства"
powercfg -lastwake
powercfg -waketimers
powercfg -h off

В «Диспетчере устройств» у мышей/клавиатур/BT снимите «Разрешить выводить компьютер из ждущего режима».

3) Обновляем BIOS и драйверы

Заходите на страницу поддержки вашего ноутбука (ASUS/Lenovo/HP/Dell/MSI и т. д.) → BIOS и драйверы Chipset/Power Management/Intel ME/AM4/BT/WLAN. Для сетевых адаптеров:

4) USB и сеть: энергосбережение

PowerShell (Администратор) — можно вставить целиком:

powercfg -setacvalueindex SCHEME_CURRENT SUB_USB USBSELECTIVE 0
powercfg -setdcvalueindex SCHEME_CURRENT SUB_USB USBSELECTIVE 0
powercfg -setacvalueindex SCHEME_CURRENT SUB_PCIE LSPM 0
powercfg -setdcvalueindex SCHEME_CURRENT SUB_PCIE LSPM 0
powercfg -setactive SCHEME_CURRENT

5) События и дампы

PowerShell (Администратор) — выполнять по одной:

Get-WinEvent -LogName System -Max 300 | Where-Object {$_.Id -in 1,42,107,506,161,219} | Select TimeCreated, Id, ProviderName, Message
Get-ComputerInfo | Select CsSystemType, OsName, OsVersion
wevtutil qe System /q:"*[System[(EventID=506)]]" /f:text /c:10

Читайте также: