Compartir a través de


estructura SP_DEVINSTALL_PARAMS_A (setupapi.h)

Una estructura de SP_DEVINSTALL_PARAMS contiene parámetros de instalación de dispositivos asociados a un elemento de información de dispositivo determinado o asociado globalmente con un conjunto de información del dispositivo.

Sintaxis

typedef struct _SP_DEVINSTALL_PARAMS_A {
  DWORD             cbSize;
  DWORD             Flags;
  DWORD             FlagsEx;
  HWND              hwndParent;
  PSP_FILE_CALLBACK InstallMsgHandler;
  PVOID             InstallMsgHandlerContext;
  HSPFILEQ          FileQueue;
  ULONG_PTR         ClassInstallReserved;
  DWORD             Reserved;
  CHAR              DriverPath[MAX_PATH];
} SP_DEVINSTALL_PARAMS_A, *PSP_DEVINSTALL_PARAMS_A;

Miembros

cbSize

Tamaño, en bytes, de la estructura SP_DEVINSTALL_PARAMS.

Flags

Marcas que controlan las operaciones de instalación e interfaz de usuario. Algunas marcas se pueden establecer antes de enviar la solicitud de instalación del dispositivo, mientras que otras marcas se establecen automáticamente durante el procesamiento de algunas solicitudes. flags puede ser una combinación de los siguientes valores.

Los valores de marca se muestran en grupos: grabables por aplicaciones de instalación de dispositivos e instaladores, solo lectura (solo establecido por el sistema operativo), reservados y obsoletos. El primer grupo enumera las marcas que se pueden escribir:

DI_CLASSINSTALLPARAMS

Establézcalo para usar los parámetros Class Install. SetupDiSetClassInstallParams establece esta marca cuando el autor de la llamada especifica parámetros y borra la marca cuando el autor de la llamada especifica un puntero de parámetros NULL .

DI_COMPAT_FROM_CLASS

Establézcalo en forzar setupDiBuildDriverInfoList para compilar la lista de controladores compatibles de un dispositivo a partir de su lista de controladores de clase en lugar del archivo INF.

DI_DRIVERPAGE_ADDED

Establecido por un instalador de clase o coinstitulo si el instalador proporciona una página que reemplaza la página de propiedades del controlador proporcionada por el sistema. Si se establece esta marca, el sistema operativo no muestra la página del controlador proporcionado por el sistema.

DI_DONOTCALLCONFIGMG

Establezca si no se debe llamar al administrador de configuración para quitar o volver a enumerar dispositivos durante la ejecución de determinadas funciones de instalación de dispositivos (por ejemplo, SetupDiInstallDevice).

Si se establece esta marca, las aplicaciones de instalación de dispositivos, los instaladores de clases y los coinstaladores no deben llamar a las siguientes funciones:

CM_Reenumerate_DevNodeCM_Reenumerate_DevNode_ExCM_Query_And_Remove_SubTreeCM_Query_And_Remove_SubTree_ExCM_Setup_DevNodeCM_Setup_DevNode_ExCM_Set_HW_Prof_FlagsCM_Set_HW_Prof_Flags_ExCM_Enable_DevNodeCM_Enable_DevNode_ExCM_Disable_DevNodeCM_Disable_DevNode_Ex

DI_ENUMSINGLEINF

Establezca si los instaladores y otros componentes de instalación de dispositivos solo deben buscar en el archivo INF especificado por SP_DEVINSTALL_PARAMS.DriverPath. Si se establece esta marca, DriverPath contiene la ruta de acceso de un solo archivo INF en lugar de una ruta de acceso de un directorio.

DI_INF_IS_SORTED

Establézcalo para indicar que la página Seleccionar dispositivo debe enumerar los controladores en el orden en que aparecen en el archivo INF, en lugar de ordenarlos alfabéticamente.

DI_INSTALLDISABLED

Establezca si el dispositivo debe instalarse en un estado deshabilitado de forma predeterminada. Para que se reconozca, esta marca debe establecerse antes de que Windows llame al controlador predeterminado para la solicitud de DIF_INSTALLDEVICE.

DI_NEEDREBOOT

En el caso de los sistemas operativos basados en NT, esta marca se establece si el dispositivo requiere que el equipo se reinicie después de la instalación del dispositivo o un cambio de estado del dispositivo. Un instalador de clase o coinstalación puede establecer esta marca en cualquier momento durante la instalación del dispositivo, si el instalador determina que es necesario reiniciar.

DI_NEEDRESTART

Igual que DI_NEEDREBOOT.

DI_NOBROWSE

Establézcalo para deshabilitar la exploración cuando el usuario selecciona una ruta de acceso de disco OEM. Una aplicación de instalación de dispositivos establece esta marca para restringir a un usuario que solo se instale desde la ubicación del medio de instalación.

DI_NODI_DEFAULTACTION

Establezca si setupDiCallClassInstaller no debe realizar ninguna acción predeterminada si el instalador de clase devuelve ERR_DI_DO_DEFAULT o no hay un instalador de clase.

DI_NOFILECOPY

Establezca si las aplicaciones y componentes de instalación de dispositivos, como SetupDiInstallDevice, deben omitir la copia de archivos.

DI_NOVCP

Establezca esta opción para deshabilitar la creación de una nueva cola de copia. Use la cola de copia proporcionada por el autor de la llamada en SP_DEVINSTALL_PARAMS.fileQueue.

DI_NOWRITE_IDS

Establézcalo para evitar que setupDiInstallDevic e escriba los identificadores de hardware especificados por INF y identificadores compatibles en las propiedades del dispositivo para el nodo del dispositivo (devnode). Esta marca solo debe establecerse para dispositivos enumerados en raíz.

Esta marca invalida la marca DI_FLAGSEX_ALWAYSWRITEIDS.

DI_PROPERTIES_CHANGE

Establecido por el Administrador de dispositivos si se cambiaron las propiedades de un dispositivo, lo que requiere una actualización de la interfaz de usuario del instalador.

DI_QUIETINSTALL

Establezca si las funciones del instalador de dispositivos deben ser silenciosas y usar opciones predeterminadas siempre que sea posible. Los instaladores de clase y los co-instaladores no deben mostrar ninguna interfaz de usuario si se establece esta marca.

DI_RESOURCEPAGE_ADDED

Se establece mediante un instalador de clase o un coinsertor si el instalador proporciona una página que reemplaza la página de propiedades de recursos proporcionadas por el sistema. Si se establece esta marca, el sistema operativo no muestra la página de recursos proporcionada por el sistema.

DI_SHOWOEM

Establézcalo para permitir la compatibilidad con discos OEM. Si se establece esta marca, el sistema operativo presenta un botón "Tener disco" en la página Seleccionar dispositivo. Esta marca se establece, de forma predeterminada, en asistentes proporcionados por el sistema.

DI_USECI_SELECTSTRINGS

Establezca si un instalador de clase o una cadena de instalación conjunta proporcionadas que se deben usar durante SetupDiSelectDevice.

Las marcas siguientes son de solo lectura (solo establecidas por el sistema operativo):

DI_DIDCLASS

Establezca si setupDiBuildDriverInfoList ya ha creado una lista de los controladores de esta clase de dispositivo. Si esta lista ya se ha compilado, contiene toda la información del controlador y esta marca siempre se establece. SetupDiDestroyDriverInfoList borra esta marca cuando elimina una lista de controladores de una clase.

Esta marca es de solo lectura. Solo el sistema operativo establece esta marca.

DI_DIDCOMPAT

Establezca si setupDiBuildDriverInfoList ya ha creado una lista de controladores compatibles para este dispositivo. Si esta lista ya se ha compilado, contiene toda la información del controlador y esta marca siempre se establece. SetupDiDestroyDriverInfoList borra esta marca cuando elimina una lista de controladores compatible.

Esta marca solo se establece en parámetros de instalación de dispositivos asociados a un elemento de información de dispositivo determinado, no en parámetros para un conjunto de información de dispositivo en su conjunto.

Esta marca es de solo lectura. Solo el sistema operativo establece esta marca.

DI_MULTMFGS

Establecido por setupDiBuildDriverInfoList si una lista de controladores de una clase de configuración de dispositivo contiene controladores proporcionados por varios fabricantes.

Esta marca es de solo lectura. Solo el sistema operativo establece esta marca.

Las marcas siguientes están reservadas:

DI_AUTOASSIGNRES

DI_DISABLED

DI_FORCECOPY

DI_GENERALPAGE_ADDED

DI_OVERRIDE_INFFLAGS

DI_SHOWALL

DI_SHOWCLASS

DI_SHOWCOMPAT

Las marcas siguientes están obsoletas:

DI_NOSELECTICONS

DI_PROPS_NOCHANGEUSAGE

FlagsEx

Marcas adicionales que proporcionan control sobre las operaciones de instalación e interfaz de usuario. Algunas marcas se pueden establecer antes de llamar a las funciones del instalador de dispositivos, mientras que otras marcas se establecen automáticamente durante el procesamiento de algunas funciones. flagsEx puede ser una combinación de los valores siguientes.

Los valores de marca se muestran en grupos: grabables por aplicaciones de instalación de dispositivos e instaladores, solo lectura (solo establecido por el sistema operativo), reservados y obsoletos.

El primer grupo enumera las marcas que se pueden escribir:

DI_FLAGSEX_ALLOWEXCLUDEDDRVS

Si se establece, incluya controladores marcados como "Excluir de seleccionar".

Por ejemplo, si se establece esta marca, setupDiSelectDevice muestra los controladores que tienen el estado Exclude From Select y SetupDiBuildDriverInfoList incluye Excluir de los controladores Select en la lista de controladores solicitados.

Un controlador es "Excluir de seleccionar" si está marcado como ExcludeFromSelect en el archivo INF o es un controlador para un dispositivo cuya clase de configuración completa está marcada noInstallClass o NoUseClass en el instalador de clase INF. Los controladores para dispositivos PnP suelen ser "Excluir de select"; Los dispositivos PnP no deben instalarse manualmente. Para crear una lista de archivos de controlador para un dispositivo PnP, un autor de llamada de setupDiBuildDriverInfoList debe establecer esta marca.

DI_FLAGSEX_ALWAYSWRITEIDS

Si se establece y la marca de DI_NOWRITE_IDS está desactivada, escriba siempre identificadores de hardware y compatibles en las propiedades del dispositivo para el nodo dev. Esta marca solo debe establecerse para dispositivos enumerados en raíz.

DI_FLAGSEX_APPENDDRIVERLIST

Si se establece, SetupDiBuildDriverInfoList anexa una nueva lista de controladores a una lista existente. Esta marca es relevante al buscar en varias ubicaciones.

DI_FLAGSEX_DRIVERLIST_FROM_URL

Si se establece, compile la lista de controladores de INF(s) recuperada de la dirección URL especificada en SP_DEVINSTALL_PARAMS.DriverPath. Si el driverPath de es una cadena vacía, use el sitio web de Windows Update.

Actualmente, el sistema operativo no admite direcciones URL. Usa esta marca para dirigir setupDiBuildDriverInfoList para buscar en el sitio web de Windows Update.

No establezca esta marca si se establece DI_QUIETINSTALL.

DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS

Si se establece, no incluya controladores antiguos de Internet al compilar una lista de controladores. Esta marca debe establecerse cada vez que cree una lista de posibles controladores para un dispositivo. Puede borrar esta marca si solo obtiene una lista de controladores instalados actualmente para un dispositivo.

DI_FLAGSEX_FILTERCLASSES

Si se establece, setupDiBuildClassInfoList comprobará si hay filtros de inclusión de clases. Esto significa que un dispositivo no se incluirá en la lista de clases si su clase está marcada como NoInstallClass.

DI_FLAGSEX_FILTERSIMILARDRIVERS

(Windows XP y versiones posteriores). Si se establece, setupDiBuildDriverInfoList incluye controladores "similares" al compilar una lista de controladores de clase. Un controlador "similar" es uno para el que uno de los identificadores de hardware o los identificadores compatibles en el archivo INF parcialmente (o completamente) coincide con uno de los identificadores de hardware o identificadores compatibles del hardware.

DI_FLAGSEX_FINISHINSTALL_ACTION

(Windows Vista y versiones posteriores). Consulte Marcar un dispositivo como una acción de Finish-Install para realizar para obtener más información.

DI_FLAGSEX_INET_DRIVER

Si se establece, el controlador se obtuvo de Internet. Windows no usará el INF del dispositivo para instalar dispositivos futuros porque Windows no puede garantizar que pueda recuperar los archivos del controlador de nuevo desde Internet.

DI_FLAGSEX_INSTALLEDDRIVER

(Windows XP y versiones posteriores). Si se establece, setupDiBuildDriverInfoList solo incluye el controlador instalado actualmente al crear una lista de controladores de clase o controladores compatibles con dispositivos.

DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE

(Windows XP y versiones posteriores). Si se establece, al crear una lista de controladores de clase, SetupDiBuildDriverInfoList no combinará nodos en la lista de controladores que proceden del mismo INF y tendrán la misma descripción y clasificación del controlador.

DI_FLAGSEX_NO_DRVREG_MODIFY

No procese las entradas AddReg y DelReg para las claves de hardware y software (controlador) del dispositivo. Es decir, las entradas AddReg y DelReg en el archivo INF DDInstall y DDInstall. Secciones de HW.

DI_FLAGSEX_POWERPAGE_ADDED

Si se establece, un instalador agregó su propia página para el cuadro de diálogo de propiedades de energía. El sistema operativo no mostrará la página de propiedades de energía proporcionada por el sistema. Esta marca solo es relevante si el dispositivo admite la administración de energía.

DI_FLAGSEX_PROPCHANGE_PENDING

Si se establece, el usuario realizó cambios en una o varias hojas de propiedades del dispositivo. Normalmente, el proveedor de páginas de propiedades establece esta marca.

Cuando el usuario cierra la hoja de propiedades del dispositivo, el Administrador de dispositivos comprueba la marca DI_FLAGSEX_PROPCHANGE_PENDING. Si se establece, el Administrador de dispositivos borra esta marca, establece la marca DI_PROPERTIES_CHANGE y envía una solicitud de DIF_PROPERTYCHANGE a los instaladores para notificarles que algo ha cambiado.

DI_FLAGSEX_RECURSIVESEARCH

(Windows Vista y versiones posteriores). Si se establece, cuando setupDiBuildDriverInfoList busca INFs en la ruta de acceso especificada en el valor de DriverPath, la búsqueda será recursiva.

DI_FLAGSEX_SEARCH_PUBLISHED_INFS

(Windows Vista y versiones posteriores). Si se establece, cuando se usa setupDiBuildDriverInfoList para buscar INF sin una ruta de acceso inf o una ruta de acceso de búsqueda especificadas, esto restringe la búsqueda solo a inFs que se han importado en el Almacén de controladores.

DI_FLAGSEX_SETFAILEDINSTALL

Establezca si se produjo un error en la instalación. Si se establece esta marca, la función SetupDiInstallDevice simplemente establece la marca FAILEDINSTALL en el ConfigFlags del dispositivo valor del Registro. Si se establece DI_FLAGSEX_SETFAILEDINSTALL, los co-installers deben devolver NO_ERROR en respuesta a DIF_INSTALLDEVICE, mientras que los instaladores de clase deben devolver NO_ERROR o ERROR_DI_DO_DEFAULT.

DI_FLAGSEX_USECLASSFORCOMPAT

Filtre los archivos INF en la clase de configuración del dispositivo al compilar una lista de controladores compatibles. Si se conoce la clase de configuración de un dispositivo, establecer esta marca reduce el tiempo necesario para crear una lista de controladores compatibles al buscar archivos INF que no están precompilados. Esta marca se omite si se establece DI_COMPAT_FROM_CLASS.

Las marcas siguientes son de solo lectura; solo el sistema operativo establece estas marcas:

DI_FLAGSEX_CI_FAILED

Establecido por el sistema operativo si un instalador de clase no se pudo cargar o iniciar. Esta marca es de solo lectura.

DI_FLAGSEX_DIDCOMPATINFO

Windows ha creado una lista de nodos de controlador que son compatibles con el dispositivo. Esta marca es de solo lectura.

DI_FLAGSEX_DIDINFOLIST

Windows ha creado una lista de nodos de controlador que incluye todos los controladores que aparecen en los archivos INF de la clase de instalación especificada. Si la clase de instalación especificada es NULL porque el conjunto o dispositivo HDEVINFO no tiene ninguna clase asociada, la lista incluye todos los nodos de controlador de todos los archivos INF disponibles. Esta marca es de solo lectura.

DI_FLAGSEX_IN_SYSTEM_SETUP

Si se establece, la instalación se produce durante la instalación inicial del sistema. Esta marca es de solo lectura.

Las marcas siguientes están reservadas y no se deben usar:

DI_FLAGSEX_ALTPLATFORM_DRVSEARCH

DI_FLAGSEX_BACKUPONREPLACE

DI_FLAGSEX_DEVICECHANGE

DI_FLAGSEX_OLDINF_IN_CLASSLIST

DI_FLAGSEX_PREINSTALLBACKUP

DI_FLAGSEX_RESTART_DEVICE_ONLY

DI_FLAGSEX_USEOLDINFSEARCH

Las marcas siguientes están obsoletas:

DI_FLAGSEX_AUTOSELECTRANK0

DI_FLAGSEX_NOUIONQUERYREMOVE

hwndParent

Identificador de ventana que poseerá los diálogos de interfaz de usuario relacionados con este dispositivo.

InstallMsgHandler

Devolución de llamada usada para controlar eventos durante la copia de archivos. Un instalador puede usar una devolución de llamada, por ejemplo, para realizar un procesamiento especial al confirmar una cola de archivos.

InstallMsgHandlerContext

Datos privados que usa el InstallMsgHandler devolución de llamada.

FileQueue

Identificador de una cola de archivos proporcionada por el autor de la llamada en la que se deben poner en cola las operaciones de archivo, pero no confirmarse.

Si asocia una cola de archivos a un conjunto de información del dispositivo (SetupDiSetDeviceInstallParams), debe desasociar la cola de la información del dispositivo establecida antes de eliminar el conjunto de información del dispositivo. Si no se puede desasociar la cola de archivos, Windows no puede disminuir su recuento de referencias en el conjunto de información del dispositivo y no puede liberar la memoria.

Esta cola solo se usa si se establece la marca DI_NOVCP, lo que indica que las operaciones de archivo se deben poner en cola, pero no confirmarse.

ClassInstallReserved

Puntero para los datos del instalador de clases. Los co-instaladores no deben usar este campo.

Reserved

Reservado. Solo para uso interno.

DriverPath[MAX_PATH]

Esta ruta de acceso la usa la función SetupDiBuildDriverInfoList.

Observaciones

Nota

El encabezado setupapi.h define SP_DEVINSTALL_PARAMS como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
encabezado de setupapi.h (incluya Setupapi.h)

Consulte también

SetupDiBuildClassInfoList

SetupDiBuildDriverInfoList

setupDiCallClassInstaller

setupDiGetDeviceInstallParams

setupDiInstallDevice

setupDiSelectDevice

setupDiSetDeviceInstallParams