DIF_REMOVE

Uma solicitação DIF_REMOVE notifica um instalador de que 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 de 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 de 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 de 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

Nenhum

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 lidar com êxito com essa solicitação e SetupDiCallClassInstaller deve chamar posteriormente o manipulador padrão, o instalador de classe retornará ERROR_DI_DO_DEFAULT.

Se o instalador de classe lidar com êxito com 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.

Observação 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

SetupDiRemoveDevice

Operação do instalador

Em resposta a uma solicitação de DIF_REMOVE, um instalador normalmente executa algumas operações de limpeza. 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 de 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. Normalmente, os co-instaladores 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 Windows chama o co-instalador para pós-processamento dessa solicitação DIF, o co-instalador deve verificar se 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.

Windows envia essa solicitação DIF antes de iniciar o processamento de remoção e remoção de consultas PnP.

Para obter mais informações sobre códigos DIF, consulte Como lidar com códigos DIF.

Requirements

Version

Com suporte em Microsoft Windows 2000 e versões posteriores do Windows.

Header

Setupapi.h (inclua Setupapi.h)

Consulte também

SetupDiRemoveDevice

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS

SP_REMOVEDEVICE_PARAMS