DIF_REMOVE
Uma solicitação DIF_REMOVE notifica um instalador de que o Windows está prestes a remover um dispositivo e dá ao instalador a oportunidade de se preparar para a remoção.
Quando enviado
Quando um usuário remove um dispositivo no Gerenciador de Dispositivos.
Quem manipula
Co-instalador de classe |
Pode manipular |
Co-instalador de dispositivo |
Pode manipular |
Instalador de Classe |
Pode manipular |
Entrada do instalador
DeviceInfoSet
Fornece um identificador para o conjunto de informações do dispositivo que contém o dispositivo a ser removido.
DeviceInfoData
Fornece um ponteiro para uma estrutura SP_DEVINFO_DATA para o dispositivo no conjunto de informações do dispositivo.
Parâmetros de instalação do dispositivo
Há parâmetros de instalação do dispositivo (SP_DEVINSTALL_PARAMS) associados ao DeviceInfoData.
Parâmetros de instalação de classe
Uma estrutura SP_REMOVEDEVICE_PARAMS pode estar associada ao DeviceInfoData.
Não haverá parâmetros de instalação de classe para a solicitação se o sinalizador DI_CLASSINSTALLPARAMS estiver claro no SP_DEVINSTALL_PARAMS. Nesse caso, nenhum perfil de hardware é especificado e o dispositivo deve ser removido do sistema como um todo.
Saída do instalador
Valor retornado do instalador
Um co-instalador pode retornar NO_ERROR, ERROR_DI_POSTPROCESSING_REQUIRED ou um código de erro Win32.
Se um instalador de classe manipular com êxito essa solicitação e SetupDiCallClassInstaller precisar chamar posteriormente o manipulador padrão, o instalador de classe retornará ERROR_DI_DO_DEFAULT.
Se o instalador de classe manipular com êxito essa solicitação, incluindo chamar diretamente o manipulador padrão, o instalador de classe deverá retornar NO_ERROR e SetupDiCallClassInstaller não chamará o manipulador padrão novamente.
Nota O instalador de classe pode chamar diretamente o manipulador padrão, mas o instalador de classe nunca deve tentar substituir as operações do manipulador padrão.
Para obter mais informações sobre como chamar o manipulador padrão, consulte Chamando manipuladores de código DIF padrão.
Se o instalador de classe encontrar um erro, o instalador deverá retornar um código de erro Win32 apropriado e SetupDiCallClassInstaller não chamará posteriormente o manipulador padrão.
Manipulador de código DIF padrão
Operação do instalador
Em resposta a uma solicitação de DIF_REMOVE, um instalador normalmente executa algumas operações de limpo. Nesse caso, um co-instalador retorna NO_ERROR e um instalador de classe retorna ERROR_DI_DO_DEFAULT.
Se um instalador determinar que o dispositivo não deve ser removido, o instalador falhará na solicitação DIF retornando um código de erro Win32. Se o sinalizador DI_QUIETINSTALL estiver claro, o instalador deverá exibir uma mensagem para o usuário explicando por que o dispositivo não está sendo removido.
Os co-instaladores não devem tentar remover o dispositivo por conta própria chamando SetupDiRemoveDevice. Os co-instaladores normalmente lidam com essa solicitação no pós-processamento, depois que o dispositivo é removido com êxito.
Se um co-instalador precisar excluir informações no registro, por exemplo, o co-instalador deverá fazer isso no pós-processamento e somente se os instaladores anteriores tiverem êxito na solicitação de remoção. Em sua passagem de pré-processamento, o co-instalador deve armazenar as informações do Registro em seu parâmetro de contexto e retornar ERROR_DI_POSTPROCESSING_REQUIRED para solicitar o pós-processamento. Quando o Windows chama o co-instalador para pós-processamento dessa solicitação DIF, o co-instalador deve marcar que o status DIF está NO_ERROR e, em seguida, excluir as informações do Registro. Se um co-instalador excluir informações do Registro em sua passagem de pré-processamento e o instalador de classe (ou outro co-instalador) falhar no DIF_REMOVE, o co-instalador poderá deixar o dispositivo em um estado imprevisível.
Os instaladores não devem excluir arquivos ao lidar com essa solicitação DIF, caso os arquivos estejam em uso por outro dispositivo.
O Windows envia essa solicitação DIF antes de iniciar o processamento de remoção e remoção de consulta PnP.
Para obter mais informações sobre códigos DIF, consulte Manipulando códigos DIF.
Requisitos
Versão |
Com suporte no Microsoft Windows 2000 e versões posteriores do Windows. |
Cabeçalho |
Setupapi.h (inclua Setupapi.h) |