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