ModalitÓ di scelta del driver di periferica pi¨ adatto da installare durante l'installazione

Traduzione articoli Traduzione articoli
Identificativo articolo: 279112 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sommario

In questo articolo viene descritto il processo utilizzato dal sistema operativo per selezionare il driver di periferica pi¨ adatto per una data periferica.

Quando si esegue il programma di installazione di Windows, Ŕ possibile che siano disponibili pi¨ driver di periferica o file inf in grado di funzionare con una particolare periferica. Sia il programma di installazione che il componente Plug and Play tentano di risolvere questo genere di conflitti selezionando il driver di periferica pi¨ adatto alla periferica da installare.

NOTA: in questo articolo viene descritto solo il processo utilizzato per le periferiche che vengono installate durante la fase a interfaccia utente grafica (GUI) del processo di installazione oppure una volta completata l'installazione. Il processo di rilevamento del controller delle memorie di massa e i processi di selezione dei driver di periferica eseguiti durante la fase in modalitÓ testo del programma di installazione utilizzano infatti un processo diverso.

Informazioni

Per ulteriori informazioni sul processo di rilevamento del controller delle memorie di massa, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
220845 Adding Third-Party or Updated Driver During Windows Setup
225125 Limited OEM Driver Support with F6 During Windows Setup

Il componente Plug and Play tenta di individuare un driver di periferica compatibile confrontando gli identificatori (ID) Plug and Play dell'hardware (restituiti dal firmware della periferica o dal BIOS del sistema quando la periferica viene enumerata) con qualsiasi ID Plug and Play presente nei file inf.

Plug and Play cerca il driver di periferica pi¨ adatto per una particolare periferica in tutti i file inf. Tale ricerca non viene interrotta alla prima corrispondenza trovata, bensý viene eseguita in tutti i file inf elencati nel percorso di ricerca, definito nella seguente voce del Registro di sistema:
HKEY-LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
DevicePath:Reg_Expand_SZ:%Systemroot%\Inf

NOTA: per impostazione predefinita, questa voce del Registro di sistema contiene esclusivamente questo percorso, sebbene sia possibile che vengano aggiunti ulteriori percorsi nel corso di un'installazione automatica in cui venga utilizzato il parametro OemPnpDriversPath = nel file di risposte.

Il programma di installazione crea un elenco di driver di periferica compatibili contenente una corrispondenza in un file inf, assegnando a ciascun driver identificato un determinato rango, compreso tra "0" e "0xFFFF", dove 0 indica la corrispondenza pi¨ adatta e 0xFFFF quella meno adatta. Il driver di periferica di rango inferiore Ŕ considerato il pi¨ adatto e pertanto verrÓ installato.

I ranghi dei driver di periferica sono classificati come segue:
  • da 0x0 a 0xfff: l'ID hardware della periferica corrisponde all'ID hardware elencato in un file inf
  • da 0x1000 a 0x1fff: l'ID hardware della periferica corrisponde a uno degli ID compatibili presenti in un file inf
  • da 0x2000 a 0x2fff: uno degli ID compatibili della periferica corrisponde all'ID hardware presente in un file inf
  • da 0x3000 a 0x3fff: uno degli ID compatibili della periferica corrisponde all'ID compatibile presente in un file inf
  • 0xFFFF: corrispondenza peggiore possibile.
In Windows XP e Windows Server 2003 sono previste ulteriori classi di rango assegnabili ai driver di periferica:
  • da 0x8000 a 0x8FFF: corrispondenze di ID hardware non affidabili
  • da 0x9000 a 0x9FFF: corrispondenze di ID compatibili non affidabili
Alcuni file inf possono essere classificati come non attendibili se privi di firma digitale o se il nome della sezione Model non contiene apposite decorazioni per Windows NT (la periferica pu˛ essere installata in Windows NT, Windows 95 o Windows 98, ma non dispone di voci specifiche per questi sistemi operativi).

Se il programma di installazione identifica un driver di periferica come non affidabile, pu˛ abbassarlo di rango inserendolo in una classe di rango inferiore.
I ranghi dei driver di periferica appartenenti alla classe da 0x0 a 0xfff sono detti "corrispondenze di ID hardware" in quanto associano ID hardware a ID hardware. Questi driver sono considerati i pi¨ adatti. Tutti gli altri ranghi sono invece elencati come "compatibili" in quanto esiste almeno un ID compatibile per creare il rango di driver di periferica. I programmi di installazione classi e i programmi di coinstallazione possono influire sulla selezione del driver di periferica in quanto possono contrassegnare un driver come "non valido" se non supporta la periferica oppure possono cambiare il rango del driver di periferica.

In presenza di due driver di periferica con lo stesso rango inferiore, il programma di installazione utilizzerÓ quello con data pi¨ recente. Se uno dei driver di periferica Ŕ firmato, al driver privo di firma verrÓ assegnata la data 00\00\0000 e verrÓ selezionato e installato il driver di periferica firmato.

╚ possibile fornire un driver di periferica fornito da un OEM, ma non Ŕ detto che verrÓ selezionato e utilizzato. Anche se un produttore ha fornito un driver di periferica aggiornato, questo potrebbe essere classificato come driver di periferica compatibile e vedersi assegnato un rango superiore. Il programma di installazione non tiene in considerazione il fatto che il driver di periferica fornito dall'OEM sia dotato di firma digitale quando seleziona una corrispondenza per un driver di periferica. Se il driver di periferica privo di firma digitale possiede un grado inferiore costituirÓ la corrispondenza migliore rispetto a qualsiasi altro driver OEM e potrebbe essere selezionato e installato dal programma di installazione.

Quando si esegue il programma di installazione, se non viene rilevata alcuna corrispondenza in alcun file inf, l'installazione della periferica viene rimandata e la periferica potrebbe essere elencata come sconosciuta in Gestione periferiche. Se viene introdotta una nuova periferica, non durante il programma di installazione, e non viene rilevata alcuna corrispondenza nei file inf presenti nel computer, Ŕ possibile che venga visualizzato un messaggio che informa che nel computer Ŕ stato rilevato un nuovo componente hardware e venga chiesto di fornire un driver di periferica appropriato.

Se si dispone ad esempio di un computer con una scheda video PCI con ID Plug and Play contenuto in due diversi file inf, Nv3_disp.inf e Nv4_disp.inf, e nessuno di questi file di driver di periferica Ŕ dotato di firma digitale, a entrambi i driver di periferica verrÓ assegnata la data 00/00/00. In questo esempio, i file si trovano nelle cartelle D:\Drivers\Video1 e D:\Drivers\Video2.

Il Devicepath= corrente nel Registro di sistema presenta la voce %Systemroot%\Inf;%Systemdrive%\Drivers\Video1;%Systemdrive%\Drivers\Video2.

NOTA: %Systemroot% Ŕ D:\Winnt e %Systemdrive% Ŕ D:

Sia il programma di installazione che il componente Plug and Play eseguiranno una ricerca in tutti i file inf disponibili in questi percorsi e registreranno tutte le corrispondenze trovate. Se uno dei due dovesse trovare pi¨ di una corrispondenza, verrÓ utilizzata quella pi¨ adatta.

Il processo descritto sopra Ŕ illustrato nel dettaglio nel seguente estratto del file Setupapi.log. Per questo esempio, la modalitÓ di registrazione del programma di installazione Ŕ stata impostata su dettagliata, seguendo le istruzioni riportate nel seguente articolo:
243996 How to Enable Verbose Logging in Windows 2000 GUI-Mode Setup

Se il programma di installazione viene eseguito normalmente, nel file Setupapi.log non saranno presenti tutti questi dettagli.

Durante l'interrogazione di una periferica, viene restituito un elenco di ID hardware e di ID compatibili. Non tutte le periferiche restituiscono pi¨ ID, come accade invece nella maggior parte dei casi. In questo esempio, una scheda video restituisce i seguenti ID:
Ricerca di ID hardware in corso...:
Pci\Ven_10de&dev_0028&subsys_5a001092&rev_11,
Pci\Ven_10de&dev_0028&subsys_5a001092,
Pci\Ven_10de&dev_0028&cc_030000,
Pci\Ven_10de&dev_0028&cc_0300
Ricerca di ID compatibili in corso...:
Pci\Ven_10de&dev_0028&rev_11,
Pci\Ven_10de&dev_0028,
Pci\Ven_10de&cc_030000,
Pci\Ven_10de&cc_0300,
Pci\Ven_10de,pci\cc_030000,
Pci\Cc_0300
Enumerazione file D:\Winnt\Inf\*.inf in corso...
@ 07:11:59.191 : PNF di "D:\Winnt\Inf\1394.inf" aperto.
@ 07:11:59.191 : PNF di "D:\Winnt\Inf\accessor.inf" aperto.
@ 07:11:59.191 : PNF di "D:\Winnt\Inf\acpi.inf" aperto.
@ 07:11:59.191 : PNF di "D:\Winnt\Inf\adm_mult.inf" aperto.
@ 07:11:59.191 : PNF di "D:\Winnt\Inf\adm_port.inf" aperto.
@ 07:11:59.207 : PNF di "D:\Winnt\Inf\agtinst.inf" aperto.
.
.
.
Enumerazione file D:\Drivers\Video1\*.inf in corso...
@ 07:12:00.660 : PNF di "D:\Drivers\Video1\NV4_DISP.inf" aperto.
@ 07:12:00.660 : Il file (D:\Drivers\Video1\NV4_DISP.inf) non presenta 
 firma digitale, la data del driver sarÓ ignorata.
@ 07:12:00.660 : Trovato Pci\VEN_10DE&DEV_0028 in 
D:\Drivers\Video1\NV4_DISP.inf; Periferica: NVIDIA RIVA TNT2; 
 Driver: NVIDIA RIVA TNT2; Provider: NVIDIA; Mfg: NVIDIA; Sezione: nv4
@ 07:12:00.660 : Nome della sezione decorata: nv4
Enumerazione file D:\Drivers\Video2\*.inf in corso...
@ 07:12:00.660 : PNF di "D:\Drivers\Video2\NV3_DISP.inf" aperto.
@ 07:12:00.675 : Il file (D:\Drivers\Video2\NV3_DISP.inf) non presenta 
 firma digitale, la data del driver sarÓ ignorata.
@ 07:12:00.675 : Trovato PCI\VEN_10DE&DEV_0028 in
 D:\Drivers\Video2\NV3_DISP.inf; Periferica: NVIDIA RIVA TNT2; 
 Driver: NVIDIA RIVA TNT2; Provider: NVIDIA; Mfg: NVIDIA; Sezione: nv4
@ 07:12:00.675 : Nome della sezione decorata: nv4
@ 07:12:01.706 : Funzione di installazione periferica: DIF_SELECTBESTCOMPATDRV.
@ 07:12:01.706 : Esecuzione installazione classe.
@ 07:12:01.894 : Installazione classe completata.
@ 07:12:01.894 : Esecuzione installazione predefinita.
@ 07:12:01.894 : Il driver selezionato installa dalla sezione nv4 in 
 D:\Drivers\Video1\Nv4_disp.inf.
@ 07:12:01.894 : Il GUID della classe della periferica Ŕ stato portato su 
 {4D36E968-E325-11CE-BFC1-08002BE10318}.
@ 07:12:01.894 : Impostato driver selezionato.
@ 07:12:01.894 : Selezionato driver con massima compatibilitÓ.
@ 07:12:01.894 : Installazione predefinita completata.
@ 07:12:06.565 : Funzione di installazione periferica: DIF_ALLOW_INSTALL.
@ 07:12:06.565 : Esecuzione installazione classe.
@ 07:12:06.565 : Installazione classe completata.
@ 07:12:06.581 : Funzione di installazione periferica: DIF_INSTALLDEVICEFILES.
@ 07:12:06.581 : Esecuzione installazione classe.
@ 07:12:06.581 : Installazione classe completata.
@ 07:12:06.581 : Esecuzione installazione predefinita.
L'output di questo esempio mostra come il programma di installazione abbia selezionato e installato il driver di periferica utilizzando il file D:\Drivers\Video1\Nv4_disp.inf in quanto ha rilevato tale driver come la corrispondenza pi¨ adatta.

Per identificare facilmente le periferiche installate e i file inf utilizzati per l'installazione, aprire il file %Systemroot%\Setupapi.log nel Blocco note e cercare DIF_SelectBestCompatDrv per le periferiche installate in modalitÓ Plug and Play oppure DIF_SelectDevice per quelle installate manualmente.

ProprietÓ

Identificativo articolo: 279112 - Ultima modifica: mercoledý 15 ottobre 2003 - Revisione: 1.5
Le informazioni in questo articolo si applicano a
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
Chiavi:á
kbinfo kbenv kbsetup KB279112
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com