DIF_REMOVE

Una solicitud de DIF_REMOVE notifica a un instalador que Windows está a punto de quitar un dispositivo y ofrece al instalador la oportunidad de prepararse para la eliminación.

Cuándo se envió

Cuando un usuario quita un dispositivo en Administrador de dispositivos.

Quién controla

Co-instalador de clase

Puede controlar

Instalador co-instalador del dispositivo

Puede controlar

Instalador de clase

Puede controlar

Entrada del instalador

DeviceInfoSet
Proporciona un identificador al conjunto de información del dispositivo que contiene el dispositivo que se va a quitar.

DeviceInfoData
Proporciona un puntero a una estructura de SP_DEVINFO_DATA para el dispositivo en el conjunto de información del dispositivo.

Parámetros de instalación de dispositivos
Hay parámetros de instalación de dispositivos (SP_DEVINSTALL_PARAMS) asociados a DeviceInfoData.

Parámetros de instalación de clases
Una estructura de SP_REMOVEDEVICE_PARAMS podría estar asociada a DeviceInfoData.

No hay parámetros de instalación de clase para la solicitud si la marca DI_CLASSINSTALLPARAMS está desactivada en el SP_DEVINSTALL_PARAMS. En este caso, no se especifica ningún perfil de hardware y el dispositivo se va a quitar del sistema en su conjunto.

Salida del instalador

Ninguno

Valor devuelto del instalador

Un co-instalador puede devolver NO_ERROR, ERROR_DI_POSTPROCESSING_REQUIRED o un código de error Win32.

Si un instalador de clase controla correctamente esta solicitud y SetupDiCallClassInstaller debe llamar posteriormente al controlador predeterminado, el instalador de clase devuelve ERROR_DI_DO_DEFAULT.

Si el instalador de clase controla correctamente esta solicitud, incluida la llamada directa al controlador predeterminado, el instalador de clase debe devolver NO_ERROR y SetupDiCallClassInstaller no volverá a llamar al controlador predeterminado.

Nota El instalador de clase puede llamar directamente al controlador predeterminado, pero el instalador de clase nunca debe intentar reemplazar las operaciones del controlador predeterminado.

Para obtener más información sobre cómo llamar al controlador predeterminado, vea Llamar a controladores de código DIF predeterminados.

Si el instalador de clase encuentra un error, el instalador debe devolver un código de error win32 adecuado y SetupDiCallClassInstaller no llamará posteriormente al controlador predeterminado.

Controlador de código DIF predeterminado

SetupDiRemoveDevice

Operación del instalador

En respuesta a una solicitud de DIF_REMOVE, un instalador normalmente realiza algunas operaciones de limpieza. En este caso, un co-instalador devuelve NO_ERROR y un instalador de clase devuelve ERROR_DI_DO_DEFAULT.

Si un instalador determina que el dispositivo no debe quitarse, el instalador produce un error en la solicitud DIF devolviendo un código de error win32. Si la marca DI_QUIETINSTALL está clara, el instalador debe mostrar un mensaje al usuario que explica por qué no se quita el dispositivo.

Los co-instaladores no deben intentar quitar el propio dispositivo mediante una llamada a SetupDiRemoveDevice. Los co-instaladores normalmente controlan esta solicitud en el posprocesamiento, después de que el dispositivo se haya quitado correctamente.

Si un co-instalador tiene que eliminar información en el Registro, por ejemplo, el co-instalador debe hacerlo en posprocesamiento y solo si los instaladores anteriores realizaron correctamente la solicitud de eliminación. En su paso de preprocesamiento, el co-instalador debe almacenar la información del Registro en su parámetro de contexto y devolver ERROR_DI_POSTPROCESSING_REQUIRED para solicitar posprocesamiento. Cuando Windows llama al co-instalador para el posprocesamiento de esta solicitud DIF, el co-instalador debe comprobar que el estado DIF es NO_ERROR y, a continuación, eliminar la información del Registro. Si un co-instalador elimina la información del Registro en su paso de preprocesamiento y el instalador de clase (u otro co-instalador) produce un error en el DIF_REMOVE, el co-instalador podría dejar el dispositivo en un estado imprevisible.

Los instaladores no deben eliminar archivos al controlar esta solicitud DIF, en caso de que otro dispositivo use los archivos.

Windows envía esta solicitud DIF antes de iniciar el procesamiento de la consulta PnP y quitarlo.

Para obtener más información sobre los códigos DIF, consulte Control de códigos DIF.

Requisitos

Versión

Compatible con Microsoft Windows 2000 y versiones posteriores de Windows.

Encabezado

Setupapi.h (incluir Setupapi.h)

Consulte también

SetupDiRemoveDevice

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS

SP_REMOVEDEVICE_PARAMS