estructura de 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. Las marcas pueden ser una combinación de los valores siguientes.
Los valores de marca se muestran en grupos: grabables por aplicaciones e instaladores de instalación de dispositivos , 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 llamador especifica parámetros y borra la marca cuando el llamador 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
Si el instalador proporciona una página que reemplaza a la página de propiedades del controlador proporcionada por el sistema, establece un instalador o coinstitulo. Si se establece esta marca, el sistema operativo no muestra la página del controlador proporcionada 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 clase y los coinstaladores no deben llamar a las funciones siguientes:
CM_Reenumerate_DevNode CM_Reenumerate_DevNode_Ex CM_Query_And_Remove_SubTree CM_Query_And_Remove_SubTree_ExCM_Setup_DevNodeCM_Setup_DevNode_Ex CM_Set_HW_Prof_Flags CM_Set_HW_Prof_Flags_Ex CM_Enable_DevNode CM_Enable_DevNode_Ex CM_Disable_DevNode CM_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 único 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 a 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
Establézcalo 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 impedir que SetupDiInstallDevice escriba los identificadores de hardware y los identificadores compatibles especificados por INF en las propiedades del dispositivo para el nodo de dispositivo (devnode). Esta marca solo debe establecerse para dispositivos enumerados en raíz.
Esta marca invalida la marca DI_FLAGSEX_ALWAYSWRITEIDS.
DI_PROPERTIES_CHANGE
Se establece mediante 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 dispositivo deben ser silenciosas y usar las 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
Establecido por un instalador de clase o 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 cadenas proporcionadas conjuntamente 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 ya se ha compilado esta lista, 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 ya se ha compilado esta lista, contiene toda la información del controlador y esta marca siempre se establece. SetupDiDestroyDriverInfoList borra esta marca cuando elimina una lista de controladores compatibles.
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 y instaladores de instalación de dispositivos, 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 los 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 instalación completa está marcada como NoInstallClass o NoUseClass en el INF del instalador de clase. 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 por 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 varias ubicaciones.
DI_FLAGSEX_DRIVERLIST_FROM_URL
Si se establece, compile la lista de controladores a partir de INF(s) recuperada de la dirección URL especificada en SP_DEVINSTALL_PARAMS. DriverPath. Si DriverPath es una cadena vacía, use el sitio web de Windows Update.
Actualmente, el sistema operativo no admite direcciones URL. Use 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 crear una lista de controladores. Esta marca debe establecerse en cualquier momento en que cree una lista de posibles controladores para un dispositivo. Puedes borrar esta marca si acabas de obtener una lista de controladores instalados actualmente para un dispositivo.
DI_FLAGSEX_FILTERCLASSES
Si se establece, SetupDiBuildClassInfoList comprobará los 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 tener 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á los nodos de 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 del Archivo INF DDInstall y DDInstall. Secciones 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, Administrador de dispositivos comprueba la marca DI_FLAGSEX_PROPCHANGE_PENDING. Si se establece, 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 ha cambiado algo.
DI_FLAGSEX_RECURSIVESEARCH
(Windows Vista y versiones posteriores). Si se establece, cuando SetupDiBuildDriverInfoList busca INFs en la ruta de acceso especificada en el valor 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 búsqueda especificada, 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 valor del Registro ConfigFlags del dispositivo. Si se establece DI_FLAGSEX_SETFAILEDINSTALL, los co-instaladores 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 instalación del dispositivo al compilar una lista de controladores compatibles. Si se conoce la clase de instalació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
Establezca 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 dispositivo o el conjunto HDEVINFO no tienen 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 deben usarse:
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 cuadros de diálogo de la 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 la devolución de llamada InstallMsgHandler .
FileQueue
Identificador de una cola de archivos proporcionada por el autor de la llamada donde 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 clase. Los co-instaladores no deben usar este campo.
Reserved
Reservado. Solo para uso interno.
DriverPath[MAX_PATH]
La función SetupDiBuildDriverInfoList usa esta ruta de acceso.
Comentarios
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 Convenciones para prototipos de función.
Requisitos
Requisito | Valor |
---|---|
Header | setupapi.h (incluya Setupapi.h) |