Operaciones básicas de instalación

Los instaladores pueden usar las funciones de instalación de dispositivos proporcionadas por SetupAPI para realizar operaciones de instalación. Estas funciones permiten a los instaladores buscar archivos INF para controladores compatibles, mostrar opciones de controlador al usuario a través de cuadros de diálogo de selección y realizar la instalación real del controlador.

La mayoría de las funciones de instalación de dispositivos se basan en la información de la estructura SP_DEVINFO_DATA para realizar tareas de instalación. Cada dispositivo está asociado a una estructura SP_DEVINFO_DATA. Puede recuperar un identificador (HDEVINFO) en un conjunto de información del dispositivo que contenga todos los dispositivos instalados en una clase determinada mediante la función SetupDiGetClassDevs . Puede liberar todas las estructuras de SP_DEVINFO_DATA de un conjunto de información del dispositivo mediante la función SetupDiDestroyDeviceInfoList . Esta función también libera las listas de dispositivos y dispositivos de clase compatibles que podrían haberse agregado a la estructura.

Mediante la función SetupDiBuildDriverInfoList , puede generar una lista a partir de la cual el instalador o el usuario pueden elegir el controlador o el dispositivo que desea instalar. SetupDiBuildDriverInfoList crea una lista de controladores compatibles o una lista de todos los dispositivos de una clase determinada.

Es posible que un instalador tenga que examinar y establecer valores en la clave del Registro para un dispositivo que está a punto de instalarse. Puede abrir la clave de controlador o hardware de un dispositivo mediante la función SetupDiCreateDevRegKey o SetupDiOpenDevRegKey .

Puede instalar una nueva clase de instalación de dispositivo mediante la función SetupDiInstallClass . Esta función instala la nueva clase de instalación desde un archivo INF que contiene una sección INF ClassInstall32.

Puede quitar un dispositivo del sistema mediante la función SetupDiCallClassInstaller con un parámetro DI_FUNCTION de DIF_REMOVE. Esta función elimina las entradas del Registro del dispositivo y, si es posible, detiene el dispositivo. Si el dispositivo no se puede detener dinámicamente, la función establece marcas que finalmente hacen que se le pida al usuario que reinicie el sistema.