| Termin | Definicja |
|---|---|
| DEVICE_REFERENCE_COUNT_NOT_ZERO | DEVICE_REFERENCE_COUNT_NOT_ZERO wskazuje, że sterownik próbuje usunąć urządzenie, do którego wciąż istnieją aktywne odwołania w systemie — zwykle wymaga zamknięcia aplikacji korzystających z tego urządzenia. DEVICE_REFERENCE_COUNT_NOT_ZERO — czym jest ten błądDEVICE_REFERENCE_COUNT_NOT_ZERO oznacza, że system Windows lub jeden z jego sterowników rozpoczął usuwanie urządzenia, ale w chwili wykonywania tej operacji nadal utrzymywane są odwołania do jego obiektu. Takie odwołanie może pochodzić z aktywnego sterownika, procesu korzystającego ze sprzętu, kolejki zadań albo dodatkowego modułu pośredniczącego między urządzeniem a systemem. Dopóki wszystkie zależności nie zostaną prawidłowo zwolnione, urządzenie nie powinno zostać odłączone logicznie ani usunięte z drzewa sprzętowego. Nie jest to zwykły komunikat o braku sterownika. Problem dotyczy przede wszystkim nieprawidłowego zarządzania cyklem życia urządzenia. System oczekuje, że przed odłączeniem zostaną zakończone operacje wejścia i wyjścia, zamknięte uchwyty oraz wyrejestrowane dodatkowe obiekty powiązane ze sprzętem. Jeżeli któryś z tych etapów zostanie pominięty, wykonany w złej kolejności albo przerwany przez błąd, może dojść do zatrzymania systemu w celu ochrony danych i stabilności pracy. Sam termin może pojawić się w analizie niebieskiego ekranu, dzienniku zdarzeń, raporcie diagnostycznym lub narzędziu przeznaczonym do badania zrzutów pamięci. Nie zawsze wskazuje bezpośrednio nazwę winnego sterownika. W praktyce jest sygnałem, że należy prześledzić moment odłączania, uśpienia, ponownego wykrywania albo resetowania urządzenia. Kontekst techniczny i porównanie z innymi błędami urządzeńKażde urządzenie obsługiwane przez system jest reprezentowane przez zestaw obiektów i zależności zarządzanych przez warstwę Plug and Play oraz sterowniki. Podczas normalnej pracy aplikacja może wysyłać żądania do urządzenia, sterownik może utrzymywać kolejkę operacji, a system może równocześnie przygotowywać sprzęt do uśpienia lub odłączenia. Poprawna procedura wymaga uporządkowania tych działań: najpierw zatrzymuje się nowe operacje, następnie kończy już rozpoczęte żądania, zwalnia zasoby, a dopiero później usuwa urządzenie. Wystąpienie DEVICE_REFERENCE_COUNT_NOT_ZERO różni się od sytuacji, w której urządzenie jest po prostu niewidoczne, ma kod błędu w Menedżerze urządzeń albo nie posiada odpowiedniego sterownika. W tych przypadkach problem może polegać na wykrywaniu sprzętu, konfiguracji lub braku plików sterownika. Tutaj urządzenie zazwyczaj zostało rozpoznane, lecz podczas przejścia do innego stanu pozostała aktywna zależność uniemożliwiająca bezpieczne zakończenie jego obsługi. Szczególne znaczenie ma współpraca kilku warstw. Sterownik producenta może korzystać z dodatkowego sterownika filtrującego, programu ochronnego, narzędzia do obsługi urządzeń USB albo aplikacji przechwytującej komunikację ze sprzętem. Każdy taki element może opóźniać zwolnienie odwołania. Z tego powodu sama ponowna instalacja głównego sterownika nie zawsze rozwiązuje problem. Konieczne może być ustalenie, który komponent pozostawia aktywne żądanie i w jakich warunkach dochodzi do jego zamykania. Znaczenie ma również stan zasilania. Błąd może ujawnić się przy przechodzeniu komputera w uśpienie, wybudzaniu, odłączaniu urządzenia przenośnego, zmianie portu albo restarcie po aktualizacji. Jeżeli problem występuje tylko w jednym z tych scenariuszy, warto traktować go jako błąd przejścia między stanami, a nie stałą awarię samego urządzenia. Typowe problemy, objawy i błędy diagnostyczne - DEVICE_REFERENCE_COUNT_NOT_ZEROJednym z częstych źródeł problemu jest sterownik, który nie kończy operacji po otrzymaniu żądania zatrzymania urządzenia. Może to dotyczyć kontrolera USB, modułu obsługującego nośnik danych, karty sieciowej, urządzenia Bluetooth, kontrolera obrazu lub innego elementu podłączonego do komputera. Objawami bywają samoczynne restarty, niebieski ekran, zawieszanie podczas wyłączania, znikanie urządzenia po wybudzeniu oraz konieczność ponownego podłączenia sprzętu. Podobne zachowanie może być wywołane przez wadliwą aktualizację sterownika, niezgodność wersji systemu z oprogramowaniem producenta, uszkodzone pliki systemowe albo pozostałości po wcześniejszym sterowniku. Czasem kłopot pojawia się po wymianie urządzenia, zmianie portu, aktualizacji firmware’u lub instalacji programu, który dodaje własną warstwę obsługi sprzętu. Warto wtedy ustalić, czy błąd rozpoczął się bezpośrednio po konkretnej zmianie. Nieprawidłowa interpretacja komunikatu również może utrudnić naprawę. Samo odłączenie urządzenia podczas pracy nie musi być przyczyną źródłową, lecz jedynie momentem, w którym ujawnia się problem ze zwalnianiem zasobów. Podobnie ponowne uruchomienie komputera może chwilowo przywrócić działanie, ale nie usuwa wadliwej sekwencji wykonywanej przy kolejnym uśpieniu lub odłączeniu. W diagnostyce sprawdza się powtarzalność zdarzenia, wpisy w Podglądzie zdarzeń, historię aktualizacji, stan urządzeń w Menedżerze urządzeń oraz informacje zapisane w zrzucie pamięci. Przydatne bywa porównanie działania po uruchomieniu systemu w trybie awaryjnym, po odłączeniu dodatkowych urządzeń oraz po wyłączeniu programów uruchamianych wraz z systemem. Jeżeli błąd występuje tylko przy jednym urządzeniu, analizę można zawęzić do jego sterownika, przewodu, portu, oprogramowania pomocniczego i zależności zasilania. Nie należy wielokrotnie wymuszać odłączania sprzętu ani przerywać procesu zapisu danych. Takie działania mogą doprowadzić do utraty plików lub uszkodzenia systemu plików, zwłaszcza gdy problem dotyczy nośnika danych. Bezpieczniej jest najpierw zamknąć aplikacje korzystające z urządzenia, odczekać na zakończenie operacji i sprawdzić, czy system prawidłowo zgłasza możliwość odłączenia. Kiedy trzeba skorzystać z pomocy serwisu - DEVICE_REFERENCE_COUNT_NOT_ZEROZgłoszenie do serwisu jest uzasadnione, gdy błąd powtarza się mimo ponownego uruchomienia, pojawia się przy każdym uśpieniu lub wyłączaniu komputera, prowadzi do niebieskich ekranów albo powoduje znikanie urządzenia. Szczególnej uwagi wymagają sytuacje, w których problem dotyczy nośnika danych, występuje razem z uszkodzeniem plików albo pojawił się po zmianie sterownika i nie można bezpiecznie wrócić do wcześniejszej konfiguracji. W ramach sprawdzenia można przeanalizować zrzuty pamięci, dzienniki systemowe, kolejność ładowania sterowników oraz zachowanie urządzenia w różnych stanach zasilania. Następnie ustala się, czy przyczyną jest oprogramowanie, sterownik, konflikt dodatkowego modułu, niestabilne połączenie, problem z portem czy usterka sprzętowa. Takie rozdzielenie jest ważne, ponieważ wymiana urządzenia bez usunięcia konfliktu sterowników może pozostawić ten sam błąd, a sama aktualizacja oprogramowania nie pomoże w przypadku fizycznej niestabilności połączenia. W Warszawie można przekazać komputer do Warszawskiego Pogotowia Komputerowego 24/7, gdy potrzebne jest uporządkowane sprawdzenie przyczyny błędu DEVICE_REFERENCE_COUNT_NOT_ZERO. Przed przekazaniem warto zanotować, podczas jakiej czynności występuje problem, jakie urządzenie jest wtedy używane oraz czy zdarzenie zaczęło się po aktualizacji, instalacji programu lub zmianie konfiguracji. Takie informacje ułatwiają odtworzenie sytuacji i ograniczają ryzyko przypadkowej wymiany sprawnych elementów. Do czasu zakończenia diagnostyki zaleca się wykonywanie kopii ważnych danych, unikanie gwałtownego odłączania urządzeń oraz zachowanie raportów z niebieskiego ekranu i wpisów systemowych. Jeżeli komputer nadal działa, można również przygotować listę podłączonych urządzeń i programów uruchamianych automatycznie. Dzięki temu możliwe jest szybsze ustalenie, które odwołanie nie zostało zwolnione i na którym etapie obsługi urządzenia dochodzi do nieprawidłowości. |