Udostępnij przez


Wywoływanie funkcji ExSetTimerResolution podczas przetwarzania żądania IRP dotyczącego zasilania

Podczas przetwarzania żądania IRP_MJ_POWER menedżer zasilania przechowuje blokadę zasobu, który funkcja ExSetTimerResolution musi uzyskać, aby zakończyć. W związku z tym zakleszczenie wystąpi, jeśli sterownik bezpośrednio lub pośrednio wywoła tę procedurę podczas przetwarzania żądania zasilania, a następnie czeka na zakończenie wywołania przed ukończeniem żądania zasilania przez sterownik. Podczas przetwarzania żądania zasilania sterownik może bezpiecznie wywołać funkcję ExSetTimerResolution tylko wtedy, gdy nie oczekuje na zakończenie tej procedury przed ukończeniem żądania zasilania. Na przykład sterownik może utworzyć wątek roboczy, który wywołuje funkcję ExSetTimerResolution, pod warunkiem że sterownik zrealizuje żądanie zasilania bez oczekiwania na zakończenie wywołania tej procedury.