Есть довольно старый драйвер, который не умеет обрабатывать IRP с функцией MJ_POWER. Он просто пропускает их вниз через IoCallDriver. Соответственно, поскольку не вызывается PoStartNextPowerIrp, на XP при остановке системы регулярно возникает синий экран DRIVER_POWER_STATE_FAILURE (9F) с подкодом 500
Возникает вопрос: возможно ли бороться с этим внешними средствами.
1) Может, системе можно запретить посылать IRP с функцией MJ_POWER конкретному драйверу, например, какими-либо настройками параметров энергопотребления?
2) Насколько плоха идея написать фильтр, который не будет пропускать IRP с функцией MJ_POWER на проблемный драйвер?
Вообще, буду рад, если ткнете меня в более подробную документацию, где можно было бы прочитать о схемах энергопотребления, в частности, о параметрах PDCAP_XX_SUPPORTED