Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Żądanie DIF_REMOVE powiadamia instalatora, że Windows ma usunąć urządzenie i daje instalatorowi możliwość przygotowania się do usunięcia.
Po wysłaniu
Gdy użytkownik usunie urządzenie w Menedżer urządzeń.
Kto obsługuje
Współinstalator klas |
Może obsłużyć |
Współinstalator urządzenia |
Może obsłużyć |
Instalator klas |
Może obsłużyć |
Dane wejściowe instalatora
DeviceInfoSet
Dostarcza uchwyt do zestawu informacji o urządzeniu , który zawiera urządzenie do usunięcia.
DeviceInfoData
Dostarcza wskaźnik do struktury SP_DEVINFO_DATA dla urządzenia w zestawie informacji o urządzeniu.
Parametry instalacji urządzenia
Istnieją parametry instalacji urządzenia (SP_DEVINSTALL_PARAMS) skojarzone z urządzeniem DeviceInfoData.
Parametry instalacji klasy
Struktura SP_REMOVEDEVICE_PARAMS może być skojarzona z elementem DeviceInfoData.
Brak parametrów instalacji klasy dla żądania, jeśli flaga DI_CLASSINSTALLPARAMS jest jasna w SP_DEVINSTALL_PARAMS. W takim przypadku nie określono żadnego profilu sprzętowego, a urządzenie ma zostać usunięte z systemu jako całości.
Dane wyjściowe instalatora
Wartość zwracana instalatora
Współinstalator może zwrócić NO_ERROR, ERROR_DI_POSTPROCESSING_REQUIRED lub kod błędu Win32.
Jeśli instalator klasy pomyślnie obsługuje to żądanie, a SetupDiCallClassInstaller powinien następnie wywołać domyślną procedurę obsługi, instalator klas zwraca ERROR_DI_DO_DEFAULT.
Jeśli instalator klas pomyślnie obsługuje to żądanie, w tym bezpośrednio wywołując domyślną procedurę obsługi, instalator klas powinien zwrócić NO_ERROR i SetupDiCallClassInstaller nie wywoła ponownie domyślnej procedury obsługi.
Uwaga Instalator klas może bezpośrednio wywołać domyślną procedurę obsługi, ale instalator klas nigdy nie powinien podejmować próby zastępowania operacji domyślnej procedury obsługi.
Aby uzyskać więcej informacji na temat wywoływania domyślnej procedury obsługi, zobacz Wywoływanie domyślnych procedur obsługi kodu DIF.
Jeśli instalator klas napotka błąd, instalator powinien zwrócić odpowiedni kod błędu Win32 i SetupDiCallClassInstaller nie wywoła następnie domyślnej procedury obsługi.
Domyślna procedura obsługi kodu DIF
Operacja instalatora
W odpowiedzi na żądanie DIF_REMOVE instalator zwykle wykonuje pewne operacje czyszczenia. W takim przypadku współinstalator zwraca NO_ERROR, a instalator klasy zwraca ERROR_DI_DO_DEFAULT.
Jeśli instalator ustali, że urządzenie nie powinno zostać usunięte, instalator zakończy się niepowodzeniem żądania DIF, zwracając kod błędu Win32. Jeśli flaga DI_QUIETINSTALL jest jasna, instalator powinien wyświetlić użytkownikowi komunikat wyjaśniający, dlaczego urządzenie nie jest usuwane.
Współinstalatorzy nie mogą próbować samodzielnie usuwać urządzenia, wywołując polecenie SetupDiRemoveDevice. Współinstalatorzy zwykle obsługują to żądanie w przetwarzaniu po pomyślnym usunięciu urządzenia.
Jeśli współinstalator musi usunąć informacje w rejestrze, na przykład współinstalator powinien to zrobić w przetwarzaniu po przetworzeniu i tylko wtedy, gdy poprzednie instalatory zakończyły się pomyślnie żądanie usunięcia. W ramach przekazywania wstępnego przetwarzania współinstalator powinien przechowywać informacje rejestru w parametrze kontekstu i zwrócić ERROR_DI_POSTPROCESSING_REQUIRED, aby zażądać przetwarzania po przetworzeniu. Gdy Windows wywołuje współinstalator do przetwarzania po przetworzeniu tego żądania DIF, współinstalator powinien sprawdzić, czy stan DIF jest NO_ERROR, a następnie usunąć informacje rejestru. Jeśli współinstalator usunie informacje rejestru w ramach przekazywania wstępnego przetwarzania, a instalator klas (lub inny współinstalator) zakończy się niepowodzeniem DIF_REMOVE, współinstalator może pozostawić urządzenie w nieprzewidywalnym stanie.
Instalatory nie powinny usuwać plików podczas obsługi tego żądania DIF, jeśli pliki są używane przez inne urządzenie.
Windows wysyła to żądanie DIF, zanim inicjuje przetwarzanie zapytań PnP i usuwa je.
Aby uzyskać więcej informacji na temat kodów DIF, zobacz Obsługa kodów DIF.
Requirements
Version |
Obsługiwane w Microsoft Windows 2000 i nowszych wersjach Windows. |
Header |
Setupapi.h (w tym Setupapi.h) |