Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Attenzione
A partire da gennaio 2023, i pacchetti driver contenenti un co-installer non sono più firmati dal portale Hardware Developer Center . Per informazioni dettagliate sul requisito, vedere Specifiche e criteri del programma di compatibilità hardware Windows, in particolare i criteri della versione 22H2, sezione Device.DevFund.INF.Declarative.
Questa pagina affronta i motivi comuni per cui i co-installer devono essere presenti in un pacchetto driver e offre meccanismi per eseguire la stessa attività senza un co-installer.
Co-installatori WDF e WinUSB
Il co-programma di installazione WDF e il co-programma di installazione WinUSB non sono necessari in alcun sistema che esegue Windows 10 e versioni successive. I riferimenti al co-installer di WDF possono essere rimossi senza ulteriori operazioni. È possibile rimuovere i riferimenti al co-installatore WinUSB, e dal pacchetto driver INF fare riferimento a WinUSB usando le direttive Include e Needs.
Guida del pacchetto di driver WinUSB
Installazione del software che presenta l'interfaccia utente
Anziché avviare un'applicazione durante un'installazione, fornire un'applicazione Universal Windows Platform (UWP) che viene installata usando una direttiva AddSoftware
Per ulteriori informazioni, consulta Associare un driver a un'app UWP (Universal Windows Platform). Una direttiva AddSoftware è supportata su Windows 10, dalla versione 1703 e versioni successive di Windows.
Per ulteriori dettagli, vedere Installazione di Software Correlato di seguito.
Impostazione dei nomi amichevoli dei dispositivi
INF File
Un pacchetto driver INF può impostare il nome descrittivo del dispositivo come indicato di seguito:
[DDInstall.HW]
AddReg = FriendlyName_AddReg
[FriendlyName_AddReg]
HKR,,FriendlyName,, "Device Friendly Name"
Tempo di esecuzione
Il nome descrittivo può essere impostato dal driver durante la fase Start IRP o la fase PrepareHardware impostando la proprietà DEVPKEY_Device_FriendlyName con una delle API seguenti.
Altre impostazioni/configurazioni del dispositivo
Quando possibile, il driver può modificare le impostazioni e la configurazione del dispositivo all'interno del driver Start IRP o della fase PrepareHardware. Quando si modifica lo stato in fase di esecuzione, il driver deve seguire i requisiti di isolamento del pacchetto driver . Questi requisiti contengono le indicazioni sulla configurazione del driver e sul layout dello stato e consentono di rendere il driver più resiliente alle modifiche esterne, più facile da aggiornare e più semplice da installare.
Per le impostazioni e la configurazione che non possono essere impostate all'interno del driver stesso, un pacchetto driver può includere anche componenti di runtime in modalità utente che modificano le impostazioni e la configurazione. Può trattarsi di un'app rivolta all'utente o di un servizio Win32 che aggiorna la configurazione. Per informazioni su come includere software in modalità utente da usare con un dispositivo, vedi Uso di un file INF componente.
Se viene usato un componente permanente, ad esempio un servizio, assicurarsi che la funzionalità sia necessaria e non possa essere eseguita in modo meno intensivo delle risorse, ad esempio all'interno di un pacchetto driver INF o all'interno del driver stesso. Per ulteriori informazioni su come garantire che un servizio venga eseguito solo quando i dispositivi pertinenti sono connessi, vedere i trigger del servizio , servizi Win32 che interagiscono con i dispositivie Registrazione per le notifiche delle interfacce dei dispositivi. Il servizio deve soddisfare anche i requisiti più recenti, ad esempio passando il Validator API .
Installazione del software associato
La parte "Componentizzato" dei requisiti del driver DCH ha introdotto un concetto denominato SoftwareComponent, che è un meccanismo che consente di separare l'installazione di un driver di dispositivo dal software ad esso associato. Quando un componente software viene creato dall'INF, crea automaticamente un dispositivo figlio che mappa al componente software. Questo dispositivo figlio esisterà allo scopo di installare il software associato al dispositivo padre. Questo software può essere installato e aggiornato indipendentemente dal dispositivo e dal driver principale.
All'interno di un pacchetto di driver SoftwareComponent INF, il meccanismo consigliato per installare il software usa una direttiva AddSoftware. Verrà attivato il download e l'installazione del software da Windows Store.
- SoftwareComponent
- AddSoftware
- Pacchetto del driver DCH di esempio
- associare un driver a un'app UWP
Dipendenze tra driver e dispositivi
Dipendenze dell'ordine di avvio/enumerazione del dispositivo
Per quanto possibile, è consigliabile evitare le dipendenze tra dispositivi o i requisiti di ordinamento iniziale.
Per i dispositivi enumerati ACPI, l'oggetto di dipendenza (_DEP) può essere utilizzato nel firmware ACPI per garantire l'ordine di avvio dei dispositivi. Per ulteriori informazioni, vedere lo spazio dei nomi Gestione Dispositivi .
I driver possono rispondere al IRP_MN_QUERY_DEVICE_RELATIONS IRP per definire relazioni tra i dispositivi, ad esempio le relazioni di rimozione. Per altre informazioni, vedi IRP_MN_QUERY_DEVICE_RELATIONS.
Dipendenze di installazione del pacchetto driver
La direttiva CopyInf può essere usata anche per installare un pacchetto driver aggiuntivo nella medesima chiamata API di installazione come un altro driver. Il pacchetto driver passato all'API di installazione verrà installato prima di qualsiasi pacchetto driver a cui si fa riferimento a CopyInf, ma non è garantito che i pacchetti driver a cui fa riferimento CopyInf siano installati in un determinato ordine.
Configurazione di componenti provenienti da più fornitori, raggruppati in un unico pacchetto di driver.
I pacchetti driver supportano un tipo di pacchetto driver INF denominato INF di estensione. Si tratta di un file INF appositamente progettato per aumentare ed estendere la funzionalità di un pacchetto di driver "base" INF. Un'estensione potrebbe non fornire il driver di funzione per il dispositivo, ma potrebbe altrimenti usare altre direttive o scrivere altre impostazioni per un dispositivo. Durante l'installazione di un driver, viene selezionato un singolo pacchetto di driver di base INF usando classificazione dei driver per fornire la funzionalità per il dispositivo, quindi vengono selezionati tutti gli INF di estensione per il dispositivo. Per altre informazioni, vedere Utilizzo di un file INF di estensione.
Un paradigma comune per l'uso dei file INF del pacchetto driver di estensione è che il produttore dell'hardware fornisca il pacchetto di driver di base INF, mentre un OEM che include quella parte all'interno di un sistema crei un pacchetto di driver di estensione INF che lo personalizzi per quel sistema.
Installazione/orchestrazione degli aggiornamenti del firmware
Sono consigliati meccanismi di aggiornamento del firmware diversi a seconda della natura del dispositivo da aggiornare. Ognuno dei seguenti può essere usato per spedire e installare un aggiornamento del firmware tramite Windows Update.
Non rimovibile
La piattaforma di aggiornamento del firmware UEFI è progettata per aggiornare i componenti di un sistema che non può essere rimosso, ad esempio il firmware di sistema. Per altre informazioni, vedi piattaforma per l'aggiornamento del firmware UEFI.
Rimovibile
Per i dispositivi rimovibili, ad esempio i dispositivi HID o USB, il modello CFU consente aggiornamenti sicuri del firmware. Per altre informazioni, vedere Aggiornamento firmware componente .
Implementazione personalizzata
In alternativa, è possibile scrivere un driver personalizzato che aggiorna il firmware del dispositivo a discrezione del driver. Per altre informazioni, vedere driver di aggiornamento del firmware personalizzato.