Funzione SetupDiCallClassInstaller (setupapi.h)
La funzione SetupDiCallClassInstaller chiama il programma di installazione della classe appropriato ed eventuali coinstallazioni registrate, con la richiesta di installazione specificata (codice DIF).
Sintassi
WINSETUPAPI BOOL SetupDiCallClassInstaller(
[in] DI_FUNCTION InstallFunction,
[in] HDEVINFO DeviceInfoSet,
[in, optional] PSP_DEVINFO_DATA DeviceInfoData
);
Parametri
[in] InstallFunction
Richiesta di installazione del dispositivo (richiesta DIF) da passare ai co-installer e al programma di installazione classi. I codici DIF hanno il formato DIF_XXX e sono definiti in Setupapi.h. Per altre informazioni, vedere Codici di funzione di installazione del dispositivo .
[in] DeviceInfoSet
Handle per un set di informazioni sul dispositivo per il computer locale. Questo set contiene un elemento di installazione del dispositivo che rappresenta il dispositivo per cui eseguire la funzione di installazione specificata.
[in, optional] DeviceInfoData
Puntatore a una struttura SP_DEVINFO_DATA che specifica l'elemento informazioni sul dispositivo in DeviceInfoSet che rappresenta il dispositivo per cui eseguire la funzione di installazione specificata. Questo parametro è facoltativo e può essere impostato su NULL. Se questo parametro viene specificato, SetupDiCallClassInstaller esegue la funzione specificata nell'elemento DeviceInfoData . Se DeviceInfoData è NULL, SetupDiCallClassInstaller chiama i programmi di installazione per la classe di installazione associata a DeviceInfoSet.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce TRUE . In caso contrario, restituisce FALSE e l'errore registrato può essere recuperato effettuando una chiamata a GetLastError.
Quando GetLastError restituisce ERROR_IN_WOW64, significa che l'applicazione chiamante è un'applicazione a 32 bit che tenta di eseguire in un ambiente a 64 bit, che non è consentita.
Commenti
SetupDiCallClassInstaller chiama il programma di installazione della classe e tutti i coinstallazioni registrati per un dispositivo o una classe di installazione del dispositivo. Questa funzione carica i programmi di installazione se non sono ancora caricati. La funzione chiama anche il gestore predefinito per la richiesta DIF, se è presente un gestore predefinito e se i programmi di installazione restituiscono uno stato che indica che il gestore predefinito deve essere chiamato.
Le applicazioni di installazione del dispositivo chiamano questa funzione con un'ampia gamma di codici di funzione di installazione del dispositivo (codici DIF). La funzione garantisce che tutti i programmi di installazione e i gestori predefiniti appropriati vengano chiamati, nell'ordine corretto, per una determinata richiesta DIF. Per altre informazioni, vedere Gestione dei codici DIF.
Dopo che SetupDiCallClassInstaller restituisceTRUE, l'applicazione di installazione del dispositivo deve chiamare SetupDiGetDeviceInstallParams per ottenere una struttura di SP_DEVINSTALL_PARAMS . Se il flag DI_NEEDREBOOT o DI_NEEDRESTART della struttura è impostato, il chiamante deve richiedere all'utente di riavviare il sistema. Ad esempio, il chiamante può eseguire questa operazione chiamando SetupPromptReboot.
Tuttavia, tenere presente che un'applicazione di installazione del dispositivo deve richiedere un riavvio del sistema una volta al massimo. Pertanto, qualsiasi applicazione di installazione del dispositivo che crea più chiamate a SetupDiCallClassInstaller e SetupDiGetDeviceInstallParams deve salvare i flag DI_NEEDREBOOT e DI_NEEDRESTART dopo ogni chiamata. Tuttavia, deve richiedere all'utente solo dopo la restituzione dell'ultima chiamata.
In risposta a un codice DIF fornito da SetupDiCallClassInstaller, i programmi di installazione delle classi e i coinstallazioni potrebbero eseguire operazioni che richiedono il riavvio del sistema. In tali situazioni, il programma di installazione o il co-programma di installazione devono eseguire le operazioni seguenti:
- Chiamare SetupDiGetDeviceInstallParams per ottenere la struttura SP_DEVINSTALL_PARAMS .
- Impostare il flag DI_NEEDREBOOT o DI_NEEDRESTART nel membro Flags della struttura.
- Chiamare SetupDiSetDeviceInstallParams, fornendo la struttura di SP_DEVINSTALL_PARAMS aggiornata, per salvare il membro Flags modificato.
Le informazioni sul dispositivo specificate da DeviceInfoSet devono contenere solo elementi per i dispositivi nel computer locale.
Per informazioni sulla progettazione e sul funzionamento dei co-installer, vedere Scrittura di un co-programma di installazione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Microsoft Windows 2000 e versioni successive di Windows. |
Piattaforma di destinazione | Desktop |
Intestazione | setupapi.h (include Setupapi.h) |
Libreria | Setupapi.lib |
DLL | Setupapi.dll |
Set di API | ext-ms-win-setupapi-classinstallers-l1-1-0 (introdotto in Windows 8) |