Driver installering, hvordan Windows Vista gjør det
Som en liten oppfølger til posten om Sentral Driverhåndtering tenkte jeg å kort beskrive hvordan en driver blir lokalisert og ikke minst hvordan akkurat den driveren blant flere mulige blir valgt.
De 4 skrittene
Hver driver installering har fire skritt som utføres i følgende rekkefølge:
- Verifisering og validering av driveren
- Legge til driveren i Driver Store
- Installering av driveren
- Avslutning/opprydning
Validering skjer gjennom at Windows Vista sjekker om driveren er signert, om den kommer fra en "trusted source" og om driveren er modifisert etter signering. Det er den såkalte Authenticode signeringen det er snakk om her. Det har eksistert tidligere og, men da mest som et kvalitetsstempel, noe det fortsatt er, men fokus har dreid mer over på sikkerhet og kontroll med driverens utgiver og kode integritet.
Mulige drivere blir så rangert ut i fra følgende kriterier:
- Signert eller ikke. (Signert rangeres før ikke signert)
- HW ID treff
- Dette betyr at man bruker driveren beskrevet i den INF fila som inneholder det beste treffet på HW ID strengen. Se forrige driver post.
- Dato for utgivelse
- Versjon
Driveren med best match fra CD'en eller lignende blir så installert i Driver Store. (Windows\System32\DriverStore\FileRepository\)
Men når driveren tas i bruk plasseres den i System32\driveres katalogen som før og ved avinstallering fjernes den også fra Driver Store for å sikre at den ikke automatisk reinstalleres ved neste boot.
Når driveren så er lagt i Driver Store er det Plug and Play motoren (kjører i System kontekst) som så sørger for selve installasjonen av driveren fra Driver Store og sørge for å plassere ut filer og sette registry nøkler etc basert på data fra INF fila. Selve driverinstalleringen skilles ut i en egen prosess slik at evt problemer med driverinstallering og medfølgende heng ikke vil fryse mer enn akkurat gjeldende driver installering.
Avslutning/oppdrydning kan inkludere å vise en avsluttende dialog til brukeren eller utføre spesifikke handlinger dersom dette er definert.
Forskjeller fra XP
Tidligere ble en drivers tilhørende INF fil kopiert til c:\windows\inf og alle filer referert i INF fila ble kopiert inn til riktig sted. Nå legges drivere til i Driver Store, eget lager for drivere, og kan så installeres derfra. Dette ble gjort av ulike årsaker, blant annet for å:
- Tillatte ikke-administratorer å ta i bruk forhåndsgodkjente drivere
- Hvilke kan defineres i group policy, man kan også forhindre installasjon om ønskelig. Se egen post om dette.
- Isolere drivere i driverlageret for å hindre navnekonflikter o.l.
- Få til en standardisert metode for å installere/avinstallere alle drivere