SP_DEVINSTALL_PARAMS_A struttura (setupapi.h)
Una struttura SP_DEVINSTALL_PARAMS contiene parametri di installazione del dispositivo associati a un particolare elemento informazioni del dispositivo o associato a livello globale con un set di informazioni sul dispositivo.
Sintassi
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;
Members
cbSize
Dimensioni, in byte, della struttura SP_DEVINSTALL_PARAMS.
Flags
Contrassegna che controllano le operazioni di installazione e interfaccia utente. Alcuni flag possono essere impostati prima di inviare la richiesta di installazione del dispositivo mentre altri flag vengono impostati automaticamente durante l'elaborazione di alcune richieste. I flag possono essere una combinazione dei valori seguenti.
I valori del flag sono elencati nei gruppi: scrivibili dalle applicazioni di installazione del dispositivo e dai programmi di installazione dei dispositivi, di sola lettura (solo impostati dal sistema operativo), riservati e obsoleti. Il primo gruppo elenca i flag scrivibili:
DI_CLASSINSTALLPARAMS
Impostare per usare i parametri Di installazione classe. SetupDiSetClassInstallParams imposta questo flag quando il chiamante specifica i parametri e cancella il flag quando il chiamante specifica un puntatore dei parametri NULL .
DI_COMPAT_FROM_CLASS
Impostare per forzare SetupDiBuildDriverInfoList per compilare un elenco di driver compatibili dall'elenco dei driver di classe anziché il file INF.
DI_DRIVERPAGE_ADDED
Impostare da un programma di installazione di classe o da un co-programma di installazione se il programma di installazione fornisce una pagina che sostituisce la pagina delle proprietà del driver fornito dal sistema. Se questo flag è impostato, il sistema operativo non visualizza la pagina driver fornita dal sistema.
DI_DONOTCALLCONFIGMG
Impostare se gestione configurazione non deve essere chiamato per rimuovere o rinumenumare i dispositivi durante l'esecuzione di determinate funzioni di installazione del dispositivo, ad esempio SetupDiInstallDevice.
Se questo flag è impostato, le applicazioni di installazione del dispositivo, i programmi di installazione delle classi e i co-installer non devono chiamare le funzioni seguenti:
CM_Reenumerate_DevNode CM_Reenumerate_DevNode_Ex CM_Query_And_Remove_SubTree CM_Query_And_Remove_SubTree_Ex CM_Setup_DevNode CM_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
Impostare se i programmi di installazione e altri componenti di installazione del dispositivo devono cercare solo il file INF specificato da SP_DEVINSTALL_PARAMS. DriverPath. Se questo flag è impostato, DriverPath contiene il percorso di un singolo file INF anziché un percorso di una directory.
DI_INF_IS_SORTED
Impostare per indicare che la pagina Seleziona dispositivo deve elencare i driver nell'ordine in cui vengono visualizzati nel file INF, anziché ordinarli in ordine alfabetico.
DI_INSTALLDISABLED
Impostare se il dispositivo deve essere installato in uno stato disabilitato per impostazione predefinita. Per essere riconosciuto, questo flag deve essere impostato prima che Windows chiami il gestore predefinito per la richiesta di DIF_INSTALLDEVICE .
DI_NEEDREBOOT
Per i sistemi operativi basati su NT, questo flag viene impostato se il dispositivo richiede che il computer venga riavviato dopo l'installazione del dispositivo o una modifica dello stato del dispositivo. Un programma di installazione della classe o un co-programma di installazione può impostare questo flag in qualsiasi momento durante l'installazione del dispositivo, se il programma di installazione determina che è necessario un riavvio.
DI_NEEDRESTART
Uguale a DI_NEEDREBOOT.
DI_NOBROWSE
Impostare per disabilitare l'esplorazione quando l'utente seleziona un percorso del disco OEM. Un'applicazione di installazione del dispositivo imposta questo flag per limitare l'installazione di un utente solo dal percorso multimediale di installazione.
DI_NODI_DEFAULTACTION
Impostare se SetupDiCallClassInstaller non deve eseguire alcuna azione predefinita se il programma di installazione della classe restituisce ERR_DI_DO_DEFAULT o non esiste un programma di installazione della classe.
DI_NOFILECOPY
Impostare se le applicazioni e i componenti di installazione del dispositivo, ad esempio SetupDiInstallDevice, devono ignorare la copia di file.
DI_NOVCP
Impostare per disabilitare la creazione di una nuova coda di copia. Usare la coda di copia fornita dal chiamante in SP_DEVINSTALL_PARAMS. FileQueue.
DI_NOWRITE_IDS
Impostare per impedire a SetupDiInstallDevice di scrivere gli ID hardware specificati inF e gli ID compatibili alle proprietà del dispositivo per il nodo del dispositivo (devnode). Questo flag deve essere impostato solo per i dispositivi enumerati radice.
Questo flag esegue l'override del flag di DI_FLAGSEX_ALWAYSWRITEIDS.
DI_PROPERTIES_CHANGE
Impostato da Gestione dispositivi se le proprietà di un dispositivo sono state modificate, che richiedono un aggiornamento dell'interfaccia utente del programma di installazione.
DI_QUIETINSTALL
Impostare se le funzioni del programma di installazione del dispositivo devono essere invisibile all'utente e usare le opzioni predefinite ovunque possibile. I programmi di installazione della classe e i co-installer non devono visualizzare alcuna interfaccia utente se questo flag è impostato.
DI_RESOURCEPAGE_ADDED
Impostare da un programma di installazione della classe o da un co-programma di installazione se il programma di installazione fornisce una pagina che sostituisce la pagina delle proprietà delle risorse fornite dal sistema. Se questo flag è impostato, il sistema operativo non visualizza la pagina della risorsa fornita dal sistema.
DI_SHOWOEM
Impostare per consentire il supporto per i dischi OEM. Se questo flag è impostato, il sistema operativo presenta un pulsante "Have Disk" nella pagina Seleziona dispositivo. Questo flag è impostato, per impostazione predefinita, nelle procedure guidate fornite dal sistema.
DI_USECI_SELECTSTRINGS
Impostare se un programma di installazione di classe o una stringa di co-programma di installazione specificata deve essere usata durante SetupDiSelectDevice.
I flag seguenti sono di sola lettura (solo impostati dal sistema operativo):
DI_DIDCLASS
Impostare se SetupDiBuildDriverInfoList ha già compilato un elenco dei driver per questa classe di dispositivo. Se questo elenco è già stato compilato, contiene tutte le informazioni sul driver e questo flag è sempre impostato. SetupDiDestroyDriverInfoList cancella questo flag quando elimina un elenco di driver per una classe.
Questo flag è di sola lettura. Solo il sistema operativo imposta questo flag.
DI_DIDCOMPAT
Impostare se SetupDiBuildDriverInfoList ha già compilato un elenco di driver compatibili per questo dispositivo. Se questo elenco è già stato compilato, contiene tutte le informazioni sul driver e questo flag è sempre impostato. SetupDiDestroyDriverInfoList cancella questo flag quando elimina un elenco di driver compatibile.
Questo flag è impostato solo nei parametri di installazione del dispositivo associati a un particolare elemento informativo del dispositivo, non nei parametri per un set di informazioni sul dispositivo nel suo complesso.
Questo flag è di sola lettura. Solo il sistema operativo imposta questo flag.
DI_MULTMFGS
Impostato da SetupDiBuildDriverInfoList se un elenco di driver per una classe di installazione del dispositivo contiene driver forniti da più produttori.
Questo flag è di sola lettura. Solo il sistema operativo imposta questo flag.
I flag seguenti sono riservati:
DI_AUTOASSIGNRES
DI_DISABLED
DI_FORCECOPY
DI_GENERALPAGE_ADDED
DI_OVERRIDE_INFFLAGS
DI_SHOWALL
DI_SHOWCLASS
DI_SHOWCOMPAT
I flag seguenti sono obsoleti:
DI_NOSELECTICONS
DI_PROPS_NOCHANGEUSAGE
FlagsEx
Flag aggiuntivi che forniscono il controllo sulle operazioni di installazione e interfaccia utente. Alcuni flag possono essere impostati prima di chiamare le funzioni del programma di installazione del dispositivo mentre altri flag vengono impostati automaticamente durante l'elaborazione di alcune funzioni. FlagsEx può essere una combinazione dei valori seguenti.
I valori del flag sono elencati nei gruppi: scrivibili dalle applicazioni di installazione del dispositivo e dai programmi di installazione dei dispositivi, di sola lettura (solo impostati dal sistema operativo), riservati e obsoleti.
Il primo gruppo elenca i flag scrivibili:
DI_FLAGSEX_ALLOWEXCLUDEDDRVS
Se impostato, includere i driver contrassegnati come "Escludi da seleziona".
Ad esempio, se questo flag è impostato, SetupDiSelectDevice visualizza i driver con lo stato Escludi da selezionare e SetupDiBuildDriverInfoList include Escludi da selezionare i driver nell'elenco dei driver richiesti.
Un driver è "Escludi da Select" se è contrassegnato come ExcludeFromSelect nel file INF o è un driver per un dispositivo il cui intero programma di installazione è contrassegnato come NoInstallClass o NoUseClass nel programma di installazione della classe INF. I driver per i dispositivi PnP sono in genere "Escludi da Select"; I dispositivi PnP non devono essere installati manualmente. Per compilare un elenco di file driver per un dispositivo PnP, un chiamante di SetupDiBuildDriverInfoList deve impostare questo flag.
DI_FLAGSEX_ALWAYSWRITEIDS
Se impostato e il flag di DI_NOWRITE_IDS è chiaro, scrivere sempre ID hardware e compatibili con le proprietà del dispositivo per il devnode. Questo flag deve essere impostato solo per i dispositivi enumerati radice.
DI_FLAGSEX_APPENDDRIVERLIST
Se impostato, SetupDiBuildDriverInfoList aggiunge un nuovo elenco di driver a un elenco esistente. Questo flag è rilevante durante la ricerca di più posizioni.
DI_FLAGSEX_DRIVERLIST_FROM_URL
Se impostato, compilare l'elenco driver da INF(s) recuperato dall'URL specificato in SP_DEVINSTALL_PARAMS. DriverPath. Se DriverPath è una stringa vuota, usare il sito Web Windows Update.
Attualmente, il sistema operativo non supporta gli URL. Usare questo flag per indirizzare SetupDiBuildDriverInfoList per cercare il sito Web di Windows Update.
Non impostare questo flag se DI_QUIETINSTALL è impostato.
DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS
Se impostato, non includere i vecchi driver Internet durante la compilazione di un elenco di driver. Questo flag deve essere impostato ogni volta che si sta creando un elenco di potenziali driver per un dispositivo. È possibile cancellare questo flag se si ottiene solo un elenco di driver attualmente installati per un dispositivo.
DI_FLAGSEX_FILTERCLASSES
Se impostato, SetupDiBuildClassInfoList verificherà la presenza di filtri di inclusione della classe. Ciò significa che un dispositivo non verrà incluso nell'elenco di classi se la relativa classe è contrassegnata come NoInstallClass.
DI_FLAGSEX_FILTERSIMILARDRIVERS
(Windows XP e versioni successive). Se impostato, SetupDiBuildDriverInfoList include driver "simili" durante la compilazione di un elenco di driver di classe. Un driver "simile" è uno dei quali uno degli ID hardware o degli ID compatibili nel file INF parzialmente (o completamente) corrisponde a uno degli ID hardware o agli ID compatibili dell'hardware.
DI_FLAGSEX_FINISHINSTALL_ACTION
(Windows Vista e versioni successive). Per altre informazioni, vedere Contrassegnare un dispositivo con un'azione Finish-Install .
DI_FLAGSEX_INET_DRIVER
Se impostato, il driver è stato ottenuto da Internet. Windows non userà l'INF del dispositivo per installare dispositivi futuri perché Windows non può garantire che possa recuperare nuovamente i file driver da Internet.
DI_FLAGSEX_INSTALLEDDRIVER
(Windows XP e versioni successive). Se impostato, SetupDiBuildDriverInfoList include solo il driver attualmente installato durante la creazione di un elenco di driver di classe o driver compatibili con il dispositivo.
DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE
(Windows XP e versioni successive). Se impostato, quando si crea un elenco di driver di classe, SetupDiBuildDriverInfoList non unisce i nodi nell'elenco dei driver che provengono dallo stesso INF e hanno la stessa descrizione e classificazione del driver.
DI_FLAGSEX_NO_DRVREG_MODIFY
Non elaborare le voci AddReg e DelReg per le chiavi hardware e software (driver) del dispositivo. Vale a dire, le voci AddReg e DelReg nel file INF DDInstall e DDInstall. Sezioni HW .
DI_FLAGSEX_POWERPAGE_ADDED
Se impostato, un programma di installazione ha aggiunto la propria pagina per la finestra di dialogo delle proprietà di alimentazione. Il sistema operativo non visualizzerà la pagina delle proprietà di alimentazione fornita dal sistema. Questo flag è rilevante solo se il dispositivo supporta la gestione energia.
DI_FLAGSEX_PROPCHANGE_PENDING
Se impostato, l'utente ha apportato modifiche a uno o più fogli delle proprietà del dispositivo. Il provider di pagine delle proprietà imposta in genere questo flag.
Quando l'utente chiude il foglio delle proprietà del dispositivo, Gestione dispositivi controlla il flag di DI_FLAGSEX_PROPCHANGE_PENDING. Se è impostato, Gestione dispositivi cancella questo flag, imposta il flag di DI_PROPERTIES_CHANGE e invia una richiesta di DIF_PROPERTYCHANGE ai programmi di installazione per notificarli che è stato modificato un elemento.
DI_FLAGSEX_RECURSIVESEARCH
(Windows Vista e versioni successive). Se impostato, quando SetupDiBuildDriverInfoList cerca INFS nel percorso specificato nel valore DriverPath , la ricerca verrà ricorsiva.
DI_FLAGSEX_SEARCH_PUBLISHED_INFS
(Windows Vista e versioni successive). Se impostato, quando SetupDiBuildDriverInfoList viene usato per cercare INFS senza un percorso INF o un percorso di ricerca specificato, ciò limita la ricerca solo a INFS importati nell'Archivio driver.
DI_FLAGSEX_SETFAILEDINSTALL
Impostare se l'installazione non è riuscita. Se questo flag è impostato, la funzione SetupDiInstallDevice imposta solo il flag FAILINSTALL nel valore del Registro di sistema ConfigFlags del dispositivo. Se DI_FLAGSEX_SETFAILEDINSTALL è impostato, i co-installer devono restituire NO_ERROR in risposta a DIF_INSTALLDEVICE, mentre i programmi di installazione delle classi devono restituire NO_ERROR o ERROR_DI_DO_DEFAULT.
DI_FLAGSEX_USECLASSFORCOMPAT
Filtrare i file INF nella classe di installazione del dispositivo durante la compilazione di un elenco di driver compatibili. Se la classe di installazione di un dispositivo è nota, l'impostazione di questo flag riduce il tempo necessario per compilare un elenco di driver compatibili durante la ricerca di file INF non precompilati. Questo flag viene ignorato se è impostato DI_COMPAT_FROM_CLASS.
I flag seguenti sono di sola lettura; solo il sistema operativo imposta questi flag:
DI_FLAGSEX_CI_FAILED
Impostato dal sistema operativo se un programma di installazione della classe non è riuscito a caricare o avviare. Questo flag è di sola lettura.
DI_FLAGSEX_DIDCOMPATINFO
Windows ha compilato un elenco di nodi driver compatibili con il dispositivo. Questo flag è di sola lettura.
DI_FLAGSEX_DIDINFOLIST
Windows ha compilato un elenco di nodi driver che include tutti i driver elencati nei file INF della classe di installazione specificata. Se la classe di installazione specificata è NULL perché il set o il dispositivo HDEVINFO non ha una classe associata, l'elenco include tutti i nodi driver di tutti i file INF disponibili. Questo flag è di sola lettura.
DI_FLAGSEX_IN_SYSTEM_SETUP
Se impostato, l'installazione si verifica durante l'installazione iniziale del sistema. Questo flag è di sola lettura.
I flag seguenti sono riservati e non devono essere usati:
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
I flag seguenti sono obsoleti:
DI_FLAGSEX_AUTOSELECTRANK0
DI_FLAGSEX_NOUIONQUERYREMOVE
hwndParent
Handle finestra che possiede le finestre di dialogo dell'interfaccia utente correlate a questo dispositivo.
InstallMsgHandler
Callback usato per gestire gli eventi durante la copia di file. Un programma di installazione può usare un callback, ad esempio, per eseguire un'elaborazione speciale durante il commit di una coda di file.
InstallMsgHandlerContext
Dati privati usati dal callback installMsgHandler .
FileQueue
Handle a una coda di file fornita dal chiamante in cui le operazioni di file devono essere accodate ma non eseguite con commit.
Se si associa una coda di file a un set di informazioni sul dispositivo (SetupDiSetDeviceInstallParams), è necessario annullare l'associazione della coda dalle informazioni sul dispositivo impostate prima di eliminare il set di informazioni sul dispositivo. Se non si riesce a interrompere la coda di file, Windows non può decrementare il conteggio dei riferimenti nel set di informazioni del dispositivo e non può liberare la memoria.
Questa coda viene usata solo se il flag di DI_NOVCP è impostato, indicando che le operazioni di file devono essere accodate ma non sottoposte a commit.
ClassInstallReserved
Puntatore per i dati del programma di installazione della classe. I co-installer non devono usare questo campo.
Reserved
Riservato. Solo per uso interno.
DriverPath[MAX_PATH]
Questo percorso viene usato dalla funzione SetupDiBuildDriverInfoList .
Commenti
Nota
L'intestazione setupapi.h definisce SP_DEVINSTALL_PARAMS come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Intestazione | setupapi.h (includere Setupapi.h) |