Добрый день. При тестировании драйвера /Win7, x86/ иногда получаю BSOD BugCheck 9F, {3, ...}
DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time (usually 10 minutes).
Драйвер написан на базе KMDF и обработка сообщений POWER MANAGER идет дефолтом.
Единственный косяк, который я вижу: драйвер, получая нормальный IRP, блокирует его на неопределенное время, не помечает как PENDING и не пропихивает в WDFQUEUE.
Если время ожидания искусственно растянуть и в течение ожидания перевести комп в STANDBY, то по пробуждении через 10-15 мин получаю BSOD BugCheck 9F, {3, ...}
Вопрос: удастся ли избежать BSOD, если на время ожидания запихивать IRP в WDFQUEUE, а потом извлекать и обрабатывать(если не cancelled) по получении данных после WAKEUP? Заодно исправив кривизну.
Или же нужно обрабатывать/завершать по получении сообщений POWER MANAGERa о POWER DOWN?
Спасибо.