Condividi tramite


Rimozione dei co-installatori dai pacchetti driver

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 da una sezione DDInstall.Software del pacchetto driver INF.

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.

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.