Condividi tramite


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 .

Nota Per determinate richieste DIF, il chiamante deve essere membro del gruppo Administrators. Per tali richieste DIF, questo requisito è elencato nella pagina di riferimento per il gestore predefinito associato.
 

[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:

  1. Chiamare SetupDiGetDeviceInstallParams per ottenere la struttura SP_DEVINSTALL_PARAMS .
  2. Impostare il flag DI_NEEDREBOOT o DI_NEEDRESTART nel membro Flags della struttura.
  3. Chiamare SetupDiSetDeviceInstallParams, fornendo la struttura di SP_DEVINSTALL_PARAMS aggiornata, per salvare il membro Flags modificato.
Al termine dell'installazione di SetupDiCallClassInstaller , l'applicazione di installazione del dispositivo che lo ha chiamato deve chiamare SetupDiGetDeviceInstallParams, controllare i flag e richiedere un riavvio, se necessario.

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)

Vedi anche

SP_DEVINFO_DATA