estructura SP_DEVINSTALL_PARAMS_W (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 a un conjunto de información del dispositivo.

Sintaxis

typedef struct _SP_DEVINSTALL_PARAMS_W {
  DWORD             cbSize;
  DWORD             Flags;
  DWORD             FlagsEx;
  HWND              hwndParent;
  PSP_FILE_CALLBACK InstallMsgHandler;
  PVOID             InstallMsgHandlerContext;
  HSPFILEQ          FileQueue;
  ULONG_PTR         ClassInstallReserved;
  DWORD             Reserved;
  WCHAR             DriverPath[MAX_PATH];
} SP_DEVINSTALL_PARAMS_W, *PSP_DEVINSTALL_PARAMS_W;

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 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_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 a 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, se establece mediante un instalador de clase 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 los 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_ExCM_Set_HW_Prof_Flags CM_Enable_DevNode CM_Enable_DevNode_Ex CM_Disable_DevNodeCM_Disable_DevNode_Ex CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_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 coinstaladores 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

Se establece 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 por 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

Se establece mediante un instalador de clase o un coinstitutor si el instalador proporciona una página que reemplaza la página de propiedades de recursos proporcionada 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 los asistentes proporcionados por el sistema.

DI_USECI_SELECTSTRINGS

Establezca si se proporcionan cadenas proporcionadas por el instalador de clase o co-instalador 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 del dispositivo en su conjunto.

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

DI_MULTMFGS

Se establece mediante 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]

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

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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en 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)

Consulte también

SetupDiBuildClassInfoList

SetupDiBuildDriverInfoList

SetupDiCallClassInstaller

SetupDiGetDeviceInstallParams

SetupDiInstallDevice

SetupDiSelectDevice

SetupDiSetDeviceInstallParams