Поделиться через


Вызов ExSetTimerResolution при обработке Power IRP

Во время обработки запроса IRP_MJ_POWER диспетчер управления питанием удерживает блокировку ресурса, который должен получить ExSetTimerResolution для завершения. Следовательно, взаимоблокировка возникает, если драйвер прямо или косвенно вызывает эту подпрограмму при обработке запроса на питание, а затем ожидает возврата вызова подпрограммы, прежде чем драйвер завершит запрос на питание. При обработке запроса на питание драйвер может безопасно вызывать ExSetTimerResolution только в том случае, если драйвер не ожидает возврата вызова этой подпрограммы перед выполнением запроса на питание. Например, драйвер может создать рабочий поток, вызывающий ExSetTimerResolution, при условии, что драйвер выполняет запрос на питание, не дожидаясь возврата вызова этой подпрограммы.