Udostępnij za pośrednictwem


Unikanie problemów z przekroczeniem limitu czasu DPC Watchdog w miniportach StorPort

Ten artykuł pomaga rozwiązać problemy z limitem czasu DPC Watchdog w urządzeniach StorPort Miniports.

Oryginalna wersja produktu: Windows DPC Watchdog
Oryginalny numer KB: 2569413

Symptomy

System przestaje odpowiadać; na przykład klawiatura i mysz nie działają. Jeśli debuger jądra jest dołączony do systemu, debuger może wyświetlić asercji.

Przyczyna

StorPort.sys obsługuje uzupełnianie we/wy w procedurze, która jest uruchamiana w DISPATCH_LEVEL i które szeregowo wywołuje procedury uzupełniania we/wy wszystkich irps, które zostały ukończone. Jeśli procedury uzupełniania we/wy śpiewają lub razem zajmują zbyt dużo czasu, klawiatura i/lub mysz może przestać odpowiadać. Istnieje również możliwość, że procedura czasomierza DPC Watchdog systemu Windows zdecyduje, że procedura StorPort zajęła zbyt dużo czasu na zakończenie.

Rozwiązanie

Sterownik jądra w stosie magazynu może zmniejszyć prawdopodobieństwo problemu przez efektywne kodowanie procedury uzupełniania we/wy sterownika. Jeśli nadal nie można wykonać wszystkich niezbędnych operacji przetwarzania w procedurze uzupełniania w odpowiednim czasie, procedura może utworzyć element roboczy dla pracy we/wy, w kolejce do kolejki roboczej i zwrócić STATUS_MORE_PROCESSING_REQUIRED; wątek procesu roboczego sterownika powinien następnie znaleźć element roboczy, wykonać pracę i wykonać IoCallerDriver dla IRP, aby zapewnić dalsze przetwarzanie we/wy IRP.

Aby uzyskać więcej informacji na temat obsługi irps, zobacz Różne sposoby obsługi irps - ściągawka - (część 1 z 2)

Więcej informacji

W zrzucie jądra lub w sesji debugowania jądra na żywo, storportuj ! Polecenie RaidUnitCompleteRequest może pojawić się w stosie wykonywania uruchomionym na procesorze CPU.