Condividi tramite


Rimozione dei co-programmi di installazione dai pacchetti driver

Attenzione

A partire da gennaio 2023, i pacchetti driver contenenti un co-programma di installazione non sono più firmati dal portale di Hardware Developer Center. Per informazioni dettagliate sul requisito, vedere Specifiche e criteri del programma di compatibilità hardware Windows, in particolare i criteri versione 22H2, sezione Device.DevFund.INF.Declarative.

Questa pagina risolve 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-programma di installazione.

Co-installer 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-programma di installazione di WDF possono essere rimossi senza ulteriori operazioni. È possibile rimuovere i riferimenti al co-programma di installazione WinUSB e fare riferimento a WinUSB dal pacchetto driver INF usando le direttive Include e Needs.

Linee guida per i pacchetti di driver WinUSB

Installazione del software che presenta l'interfaccia utente

Anziché avviare un'applicazione durante un'installazione, fornire un'applicazione piattaforma UWP (Universal Windows Platform) installata usando una direttiva AddSoftware da una sezione DDInstall.Software del pacchetto driver INF.

Per altre informazioni, vedi Associazione di un driver a un'app UWP (piattaforma UWP (Universal Windows Platform)). Una direttiva AddSoftware è supportata in Windows 10 versione 1703 e versioni successive di Windows.

Per altri dettagli, vedere Installazione del software associato di seguito.

Impostazione dei nomi descrittivi 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"

esecuzione

Il nome descrittivo può essere impostato dal driver durante la fase Start IRP o 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 informazioni su come assicurarsi che un servizio venga eseguito solo quando i dispositivi pertinenti sono connessi, vedi Trigger di servizio, servizi Win32 che interagiscono con i dispositivi e Registrazione per le notifiche dell'interfaccia del dispositivo. Il servizio deve soddisfare anche i requisiti più recenti, ad esempio passando il validator API.

Installazione del software associato

La parte "Componentizzata" dei requisiti del driver DCH ha introdotto un concetto denominato SoftwareComponent, che è un meccanismo per separare l'installazione di un driver di dispositivo dal software associato. Quando un componente software viene creato da INF, crea automaticamente un dispositivo figlio che esegue il mapping 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.

Dipendenze tra driver e dispositivi

Dipendenze di ordinamento 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 usato nel firmware ACPI per applicare l'ordinamento dell'avvio del dispositivo. Per altre info, vedi 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 info, 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 durante la stessa chiamata API di installazione di 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 di più fornitori in bundle in un unico pacchetto 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 INF usando la classificazione dei driver per fornire la funzionalità per il dispositivo, quindi per il dispositivo vengono selezionati tutti gli INF di estensione. Per altre info, vedi Uso di un file INF di estensione.

Un paradigma comune per l'uso di file INFS del pacchetto driver di estensione è che il produttore dell'hardware fornisca il pacchetto di driver di base INF e per una spedizione OEM che fa parte all'interno di un sistema per creare un pacchetto di driver di estensione INF che lo personalizza per tale 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 info, vedi Piattaforma di aggiornamento firmware UEFI.

Rimovibile

Per i dispositivi rimovibili, ad esempio i dispositivi HID o USB, il modello CFU consente aggiornamenti sicuri del firmware. Per altre info, vedi Aggiornamento del firmware del componente.

Implementazione personalizzata

In alternativa, è possibile scrivere un driver personalizzato che aggiorna il firmware del dispositivo a discrezione del driver. Per altre info, vedi Driver di aggiornamento del firmware personalizzato.