Gestione dei codici DIF
Nota
Le funzionalità descritte in questa sezione non sono supportate e i pacchetti driver che li contengono non riceveranno più una firma Microsoft. Vedere Uso di un file INF universale.
Le applicazioni di installazione del dispositivo inviano codici di funzione di installazione del dispositivo (codici DIF) ai programmi di installazione chiamando SetupDiCallClassInstaller. Questa funzione, a sua volta, chiama la funzione del punto di ingresso del programma di installazione. Per una descrizione dei punti di ingresso del programma di installazione, vedere:
Interfaccia del co-programma di installazione
La pagina di riferimento per ogni codice DIF contiene le sezioni seguenti:
Quando inviato
Descrive i casi tipici in cui, e perché, un'applicazione di installazione del dispositivo invia questa richiesta DIF.
Chi gestisce
Specifica quali programmi di installazione sono autorizzati a gestire questa richiesta. I programmi di installazione includono programmi di installazione di classe, co-installer di classe (co-installer a livello di classe di installazione) e co-installer per dispositivi (co-installer specifici del dispositivo).
Input del programma di installazione
Oltre al codice DIF, SetupDiCallClassInstaller fornisce informazioni aggiuntive rilevanti per la richiesta specifica. Per informazioni dettagliate sulle informazioni fornite con ogni richiesta, vedere la pagina di riferimento per ogni codice DIF. L'elenco seguente contiene una descrizione generale dei parametri di input aggiuntivi ed elenca le funzioni di installazione del dispositivo (funzioniSetupDiXxx ) che i programmi di installazione possono chiamare per gestire i parametri:
DeviceInfoSet
Fornisce un handle al set di informazioni sul dispositivo.
L'handle è opaco. Usare l'handle, ad esempio, per identificare il set di informazioni sul dispositivo nelle chiamate alle funzioni SetupDiXxx .
DeviceInfoSet potrebbe avere una classe di installazione del dispositivo associata. In tal caso, chiamare SetupDiGetDeviceInfoListClass per ottenere il GUID della classe.
DeviceInfoData
Facoltativamente, fornisce un puntatore a una struttura di SP_DEVINFO_DATA che identifica un dispositivo nel set di informazioni sul dispositivo.
Parametri di installazione del dispositivo
Questi parametri indiretti forniscono informazioni per l'installazione del dispositivo in una struttura SP_DEVINSTALL_PARAMS . Se DeviceInfoData non è NULL, sono presenti parametri di installazione del dispositivo associati a DeviceInfoData. Se DeviceInfoData è NULL, i parametri di installazione del dispositivo sono associati a DeviceInfoSet.
Chiamare SetupDiGetDeviceInstallParams per ottenere i parametri di installazione del dispositivo.
Parametri di installazione della classe
I parametri indiretti facoltativi sono specifici della richiesta DIF specifica. Si tratta essenzialmente di "parametri di richiesta DIF". Ad esempio, i parametri di installazione della classe per una richiesta di installazione DIF_REMOVE sono contenuti in una struttura SP_REMOVEDEVICE_PARAMS.
Ogni struttura SP_XXX_PARAMS inizia con una struttura SP_CLASSINSTALL_HEADER di dimensioni fisse.
Chiamare SetupDiGetClassInstallParams per ottenere i parametri di installazione della classe.
Se una richiesta DIF include parametri di installazione della classe, è presente un set di parametri associati a DeviceInfoSet e un altro set di parametri associati a DeviceInfoData (se la richiesta DIF specifica DeviceInfoData). SetupDiGetClassInstallParams restituisce i parametri più specifici disponibili.
Contesto
I co-installer hanno un parametro di contesto facoltativo.
Output del programma di installazione
Descrive l'output previsto per questo codice DIF.
Se un programma di installazione modifica i parametri di installazione del dispositivo, il programma di installazione deve chiamare SetupDiSetDeviceInstallParams per applicare le modifiche prima di restituire. Analogamente, se un programma di installazione modifica i parametri di installazione della classe per il codice DIF, il programma di installazione deve chiamare SetupDiSetClassInstallParams.
Valore restituito del programma di installazione
Specifica i valori restituiti appropriati per il codice DIF. Per altre informazioni sui valori restituiti, vedere la figura seguente.
Gestore di codice DIF predefinito
Specifica la funzione SetupDiXxx che esegue le operazioni predefinite definite dal sistema per il codice DIF. Non tutti i codici DIF hanno un gestore predefinito. A meno che un programma di installazione condivisa o un programma di installazione classi non esegua la chiamata al gestore predefinito, SetupDiCallClassInstaller chiama il gestore predefinito per un codice DIF dopo aver chiamato il programma di installazione della classe (ma prima di chiamare tutti i co-installer registrati per la post-elaborazione).
Se un programma di installazione di classe gestisce correttamente un codice DIF e SetupDiCallClassInstaller deve successivamente chiamare il gestore predefinito, il programma di installazione della classe restituisce ERROR_DI_DO_DEFAULT.
Se il programma di installazione della classe gestisce correttamente un codice DIF, inclusa la chiamata diretta al gestore predefinito, il programma di installazione della classe deve restituire NO_ERROR e SetupDiCallClassInstaller non chiamerà di nuovo il gestore predefinito. Si noti che il programma di installazione della classe può chiamare direttamente il gestore predefinito, ma il programma di installazione della classe non deve mai tentare di sostituire le operazioni del gestore predefinito.
Se il programma di installazione della classe rileva un errore, il programma di installazione deve restituire un codice di errore Win32 appropriato e SetupDiCallClassInstaller non chiamerà successivamente il gestore predefinito.
I co-programmi di installazione non devono chiamare gestori di codice DIF predefiniti.
Operazione del programma di installazione
Descrive i passaggi tipici che un programma di installazione può eseguire per gestire la richiesta DIF.
Vedere anche
Elenca le origini delle informazioni correlate.
La figura seguente illustra la sequenza di eventi in SetupDiCallClassInstaller per l'elaborazione di un codice DIF.
Il sistema operativo esegue alcune operazioni per ogni codice DIF. I programmi di installazione e i programmi di installazione di classe forniti dal fornitore possono partecipare alle attività di installazione. Si noti che SetupDiCallClassInstaller chiama i co-programmi di installazione registrati per la post-elaborazione anche se il codice DIF ha esito negativo.