Partilhar via


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

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 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

SetupDiRemoveDevice

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)

Confira também

SetupDiRemoveDevice

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS

SP_REMOVEDEVICE_PARAMS