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)

Vedi anche

SetupDiBuildClassInfoList

SetupDiBuildDriverInfoList

SetupDiCallClassInstaller

SetupDiGetDeviceInstallParams

SetupDiInstallDevice

SetupDiSelectDevice

SetupDiSetDeviceInstallParams