Påkrævet streng i inf blev ikke fundet. Generelle driverlogfiler

Det er klart, at enhver bruger af en personlig computer fra tid til anden har brug for at tilslutte en enhed til sin station. Grunden til, at dette sker, er ikke af stor interesse for os nu, det kunne være en opgradering, der er velkendt for mange (for at øge ydeevnen af ​​individuelle noder, og som en konsekvens af systemets overordnede ydeevne), det kunne også være blot tilføjelse af nyt udstyr for at udvide funktionalitet eksisterende konfiguration, som for eksempel i tilfælde af tilslutning af en ny spilcontroller, kan dette også være behovet for at bruge data fra et flashdrev. Uanset præcis hvordan vi tilslutter en ny enhed, er Windows-operativsystemet tvunget til at reagere på udseendet af nyt udstyr ved at udføre visse manipulationer for at sikre understøttelse af det nye udstyr på softwareniveau. Mange operativsystemer bruger en grænseflade mellem hardwaren og et softwarelag kaldet en driver til at give softwareinteraktion med enheder.

Driver er software, hvormed operativsystemet og softwaremoduler, der kører i det, får adgang til hardware eller logiske enheder.

Det er grunden til, at operativsystemet med alle tilgængelige midler forsøger at sikre enhedens funktion i dens omgivelser; til dette forsøges det at installere den passende driver til den nyligt tilsluttede enhed for derved at levere funktionerne af den nye enhed for adgang til brugertilstandsprogrammer og kernetilstandskode, for uden denne meget berygtede drivere vil udstyret i systemet simpelthen ikke kunne fungere.
Det er ikke tilfældigt, at jeg nævnte logiske enheder i definitionen, da der er en separat kategori af drivere, der ikke vedligeholder hardware, men er integreret for at udvide implementeringen (udvidelse, tilføjelse) af de funktionelle funktioner i forskellige systemmoduler. Men hvem kan blive overrasket over at installere drivere nu? Denne proces er allerede så velkendt for alle pc-brugere fra mange års praksis, at nogle, jeg er sikker på, kan gøre det med lukkede øjne :) Men har vi tænkt over detaljerne i denne proces, har vi nogensinde tænkt over Driver installation algoritme? Har du nogensinde spekuleret på, hvilke handlinger operativsystemet udfører, når du tilslutter en ny enhed og installerer drivere?

Enig i, at fra brugerens synspunkt ser processen med at installere en driver i Windows i de fleste tilfælde ret prosaisk ud. Det sædvanlige animerede installationsguideikon vises i proceslinjen, og efter et stykke tid kan systemet udsende en rapport om vellykket eller mislykket afslutning af installationsproceduren for en ny enhedsdriver i systemet. Desuden giver installationsguiden, bortset fra netop dette ikon i bakken, ofte ikke nogen visuel bekræftelse af forsøg på at installere en ny enhed, mens den "stille" tilføjer nyt udstyr til listen over enheder og (hvis det ikke lykkes) markerer det med et særligt ikon i enhedshåndteringen, hvilket antyder, at brugeren kan fortsætte med at konfigurere udstyret manuelt. Alle disse eksterne processer, der allerede er velkendte for både dig og mig, har været til stede i en eller anden form i alle versioner af Windows-operativsystemer næsten siden fremkomsten af ​​dette operativsystem, idet de kun adskiller sig lidt fra hinanden i detaljer. De blev så velkendte og sædvanlige, at jeg aldrig engang tænkte på, hvad der skete "på den anden side af skærmen", i dybet af operativsystemet, hvad der gemte sig under denne imaginære enkelhed? Som du vil se nedenfor, skjuler installation af en Windows-driver til en fysisk eller logisk enhed ret komplekse og ekstremt interessante processer. Driver installation algoritme i Windows kan opdeles i følgende globale nøgleopgaver:

  • Kopiering af driverens binære fil til den relevante mappe på systemet;
  • Registrering af driveren i Windows, med angivelse af opstartsmetoden;
  • Tilføjelse af de nødvendige oplysninger til systemregistret;
  • Kopier/installer relaterede understøttende komponenter fra driverpakken;

Ud over de vigtigste opgaver, der udføres som en del af driverinstallationsalgoritmen i Windows, ville det være rart at klassificere de betingelser, hvorunder Windows-driverinstallationsprocessen starter:

  • Brugeren installerer en ny enhed i en slukket computer. I dette tilfælde begynder processen med at opdage en ny enhed og installere driveren allerede på tidspunktet for indlæsning af operativsystemet.
  • En bruger med lokale administratorrettigheder starter ved hjælp af Enhedshåndtering-snap-in'en installationen eller opdateringen af ​​en driver til en allerede installeret enhed.
  • Brugeren "på farten" forbinder en ny enhed til en kørende computer. I dette tilfælde taler vi om en bestemt kategori af enheder, der kan tilsluttes i farten, såsom enheder med en ekstern eSata, USB osv. interface. Når alt kommer til alt, vil du ikke installere et internt videokort, når der er strøm til PCIe-slotsene? Det har jeg personligt ikke gjort endnu :)
  • Brugeren kører selvstændigt drfra en konto med lokale administratorrettigheder. Denne metode kan bruges både til at installere drivere til fysiske enheder, der understøtter Plug and Play-standarden, og til at installere ikke-PnP (legacy) drivere, logiske enhedsdrivere, der ikke automatisk kan registreres af systemet, og som ikke kan installeres på anden måde i manuel mode. Et typisk eksempel ville være antivirus eller virtuelle maskiner, der installerer deres drivere (logiske enheder) i systemet.
  • Brugeren højreklikker på .inf-filen i driverbiblioteket og vælger Installer fra en konto med lokale administratorrettigheder.

Men hvad er selve driverpakken? Som vi har set mere end én gang, er dette trods alt et helt sæt filer med helt andre, ved første øjekast, formål. Uden en mere dybdegående gennemgang af strukturen af ​​driverinstallationspakken vil det være svært for os at forstå selve driverinstallationsalgoritmen, så vi vil præsentere de generelle komponenter:

  • .inf-fil(er). Nøglekomponenten i driverinstallationspakken er en fil, der beskriver driverinstallationsprocessen. inf-filen er opdelt i sektioner og består af instruktioner, der angiver systemet nøjagtigt, hvordan driveren er installeret: de beskriver den enhed, der installeres, kilde- og destinationsplaceringerne for alle driverkomponenter, forskellige ændringer, der skal foretages i registreringsdatabasen, når installation af Windows-driveren, drivere til afhængighedsoplysninger og så videre. .inf-filer knytter en fysisk enhed til den driver, der styrer den pågældende enhed.
  • Driver binære fil(er). Pakken skal som minimum indeholde en .sys- eller .dll-fil til driverkernen. Faktisk kan en enkelt .sys-fil (som en sidste udvej) installeres (med forbehold) manuelt ved at redigere registreringsdatabasen.
  • Installations eksekverbare filer. Normalt er disse allerede velkendte installationsværktøjer, som har navnene setup.exe, install.exe og nogle andre.
  • Fjernelse af eksekverbare filer. Disse er normalt afinstallationsværktøjer, der hedder uninstall.exe.
  • Fil(er) med yderligere procedurer og biblioteker. Normalt er disse hjælpebiblioteker i .dll-format, co-installere.
  • .cat-fil(er). Digitalt signeret katalogfil. Disse filer indeholder digitale mappesignaturer og fungerer som en signatur for pakkefiler, hvormed brugeren kan bestemme pakkens oprindelse og verificere driverpakkefilernes integritet. Påkrævet på 64-bit versioner af Windows starter med Vista og nyere og anbefales til alle andre.
  • Brugertilstand kontrolmoduler. Typisk er disse forskellige kommando-applets, der fungerer i brugertilstand, såsom ATI Catalist Control Center, VIA HD Audio Desk, Realtek HD Audio Control Panel og lignende.
  • Hjælpefiler. Hvor ville vi være uden dem?

Begreber og definitioner

I denne artikel vil jeg kun beskrive én installationsmetode, som under alle omstændigheder beskriver næsten alle stadier af driverinstallationsalgoritmen i Windows, som også kan anvendes til andre metoder. Og nu vil vi tale om situationen, når brugeren indsætter nyt udstyr, for eksempel et videokort, i det interne stik på en slukket computer. Men lad os først introducere nogle definitioner, som vi har brug for i processen med at studere driverinstallationsalgoritmen.
Manager (dispatcher) Plug and Play (PnP Manager, PnP Manager)- en sky af kernetilstand og brugertilstandskode, ansvarlig for at tilføje, genkende og fjerne enheder i systemet. Kernetilstandsblokken interagerer med resten af ​​systemkomponenterne under download/installation af software, der er nødvendig for at servicere de enheder, der findes i systemet. Brugertilstand blok ( %Windir%\System32\umpnpmgr.dll, kører i sammenhæng med hovedsystemprocessen svchost.exe) er ansvarlig for brugerinteraktion i situationer, der kræver installation af nye drivere eller justering af driftsparametre i allerede installerede. Ansvarlig for tildeling og efterfølgende allokering af hardwareressourcer såsom interrupts (IRQ'er), I/O-porte, DMA-kanaler (direct memory access) og hukommelsesadresser. Den har funktionaliteten til at bestemme den driver, der kræves for at understøtte en specifik enhed, og funktionaliteten til at downloade/installere denne driver. I stand til at genkende nye enheder, reagere på deres tilslutning og afbrydelse. Det er en del af Windows executive subsystem-kode.

Optælling af enheder

Det nytter ikke noget at beskrive hele indlæsningsstadiet helt fra begyndelsen, og vi starter kun med det stadie, der interesserer os, hvor Winload(.efi)-modulet indlæser kernen i Windows 7-operativsystemet fra filen ntoskrnl. exe. Kernen lanceres af PnP-manageren, som er en del af det udøvende undersystem. PnP-manageren starter processen med at optælle enheder fra rodenheden, en virtuel busdriver kaldet ROOT, som repræsenterer hele systemet og er en busdriver for alle PnP- og ikke-PnP-enheder, samt HAL (hardware-niveauabstraktioner) . HAL'en fungerer på dette stadium som en buschauffør, der opregner de enheder, der er direkte forbundet til bundkortet. I stedet for faktisk at angive den, er HAL imidlertid afhængig af den hardwarebeskrivelse, der allerede findes i registreringsdatabasen. Formålet med HAL på dette stadium er at opdage primære busser såsom PCI. Den primære PCI-busdriver viser til gengæld de enheder, der er tilsluttet denne bus, og finder andre busser, som PnP-manageren straks indlæser drivere til. Disse buschauffører registrerer til gengæld enheder på deres busser. Denne rekursive proces med optælling, indlæsning af drivere og derefter optælling fortsætter, indtil alle enheder på systemet er blevet opdaget og konfigureret. Under optællingsprocessen bygger PnP-manageren et enhedstræ, der unikt beskriver relationerne mellem alle enheder i systemet. Noderne i dette træ, kaldet devnodes (en forkortelse for device nodes), indeholder information om et enhedsobjekt, som igen beskriver enheden i detaljer.
Registreringer af alle enheder, der er blevet opdaget siden installationen af ​​systemet, gemmes i registreringsdatabasen HKLM\SYSTEM\CurrentControlSet\Enum. Undernøglerne til denne bikube beskriver enheder i følgende format:

HKLM\SYSTEM\CurrentControlSet\Enum\ Enumerator\ DeviceID\ InstanceID

HKLM\SYSTEM\CurrentControlSet\Enum\

  • Enumerator - navn på buschaufføren. Kan tage værdier: ACPI, DISPLAY, HDAUDIO, HID, HDTREE, IDE, PCI, PCIIDE, Root, STORAGE, SW, UMB, USB, USBSTOR og andre;
  • DeviceID - en unik identifikator for denne type enhed;
  • InstanceID - en unik identifikator for forskellige forekomster af den samme enhed.

Faktum er, at driveren af ​​bussen, som enheden er forbundet til, anmoder om forskellige parametre fra enheden (producent, enhed, revision osv. identifikator) og genererer en såkaldt hardwareidentifikator (HardwareID), som entydigt beskriver enhed og er en række parametre adskilt af tegn & og bestående af følgende dele:

  • Et præfiks, der beskriver den bus, som enheden er tilsluttet.
  • Enheds-id. Består af flere dele, såsom producent-id, produkt-(model)-id, enhedsrevision.

HardwareID er en identifikationsstreng, der afhænger af enhedsparametrene (producent, model, revision, version osv.), som Windows bruger til at matche enheden med driverens .inf-fil.

Typisk HardwareID-struktur:

PCI\VEN_10DE&DEV_1341&SUBSYS_2281103C&REV_A2

Ud over HardwareID'et tildeles enheden CompatibleID-parametrene, som har et lignende format, men kun indeholder mere generelle værdier, der ikke indeholder enhedsspecifikke parametre (nogle enhedsidentifikatorer) og er nødvendige for at initialisere en bredere udvalg af kompatible enheder.

HardwareID og CompatibleID bruges af Windows executive-kode til at finde en enhedsdriver.

Drivergenkendelse

Hvis på stadiet med optælling af enheder og indlæsning af drivere, informerer den funktionelle driver af bussen, hvorpå den nye enhed er tilsluttet, PnP-manageren om ændringer i de tilsluttede underordnede enheder. PnP-manageren i kernetilstanden kontrollerer, om en driver er knyttet til enheden, ved at forespørge på driveren af ​​den bus, som den nye enhed er tilsluttet, og få enhedens HardwareID og eventuelt CompatibleID. PnP-manageren i kernetilstanden informerer brugertilstandens PnP-manager med en særlig hændelse om, at denne enhed kræver installation, og videregiver den de modtagne identifikatorer. Brugertilstandens PnP-manager forsøger først at installere enheden automatisk uden brugerindblanding. For at gøre dette kører PnP-manageren i brugertilstand værktøjet rundll32.exe for at starte guiden til installation af enhedsdrivere (%Windir%\System32\Newdev.dll).

Enhedsdriverinstallationsguiden starter en søgning efter en passende driver til enheden ved hjælp af oplysninger fra alle system-inf-filer, der er placeret på følgende pålidelige systemplaceringer:

  • Driverlager;
  • Windows opdatering;
  • Systemmappe med INF-filer;

Til ovenstående formål med at søge og installere driveren, bruges funktionerne i bibliotekerne setupapi.dll (installationsstøttefunktioner) og cfgmgr32.dll (konfigurationshåndtering). Søgningsprocessen bruger de aktuelt opnåede identifikatorer HardwareID og (valgfrit) CompatibleID, hvis værdier beskriver alle mulige muligheder for at identificere hardware i driverinstallationsfilen, det vil sige inf-filen. Identifikationsværdierne for den installerede enhed sammenlignes med dem, der er beskrevet i modelsektionerne i de inf-filer, der er registreret i systemet. Listerne over identifikatorer er ordnet således, at mere specifikke hardwarebeskrivelser præsenteres først i listerne. Hvis der blev fundet ID-matches i flere inf-filer, anses det mere nøjagtige match for at være at foretrække frem for det mindre nøjagtige match, signerede inf-filer foretrækkes frem for usignerede inf-filer, og senere signerede inf-filer foretrækkes frem for tidligere signerede inf-filer. Hvis et match baseret på HardwareID ikke findes, så bruges CompatibleID, hvis det er tilgængeligt, selvfølgelig. Hvis der ikke findes et match baseret på CompatibleID, kan guiden Tilføj hardware bede dig om at finde den nyeste hardwaredriver. Lad os se nærmere på alle disse kilder til information om drivere.

Driver lager

Driverinstallationsguiden forsøger at finde en passende inf-fil i systemdriverlageret, placeret i mappen %Windir%\System32\DriverStore, som indeholder alle, uden undtagelse, systemdrivere inkluderet i Windows-distributionen, hentet gennem "Windows Update "-tjeneste eller installeret i systemet af brugeren.

Driver repository er en sikker systemplacering, en mappe designet til at gemme alle driverpakker, der nogensinde er blevet installeret på systemet.

Driver Store blev først introduceret i Windows Vista. Før du installerer en driver på systemet, kontrollerer den specialiserede kode først driverens digitale signatur, derefter syntaksen for driver-inf-filerne, derefter rettighederne for den aktuelle bruger, og først derefter placerer alle driverkomponenter i systemdriverlageret. Men så kan driveren, der er placeret i driverlageret, bruges til at installere enheder på systemet. Da proceduren for at placere en driver i lageret er ret sofistikeret, er driverlageret den mest pålidelige kilde til information om drivere.

Systemmappe med INF-filer

Parallelt hermed søger systemet efter driveren på den systemplacering, der er beskrevet af værdien af ​​DevicePath-parameteren placeret i registreringsdatabasen. HKLM\Software\Microsoft\Windows\CurrentVersion. Typisk er værdien %SystemRoot%\inf , hvilket på de fleste systemer svarer til placeringen C:\Windows\inf .

INF fil

Jeg vil gerne lave en lille digression og tale separat om driverpakkens informationsfiler. inf-filen er en af ​​nøglekomponenterne i driversættet. Den gemmer sekvensen af ​​operationer for installation og afinstallation af driveren, beskrevet af særlige direktiver, der angiver placeringen af ​​de funktionelle driverfiler. Filen indeholder kommandoer, der tilføjer oplysninger til registreringsdatabasen, der er ansvarlig for at angive (Enum) driveren og dens klasse (Klasse), og kan indeholde instruktioner til Hardware Installation Wizard til at starte de såkaldte hovedinstallationsprogrammer (Class Installer) og yderligere installatører ( CoInstaller , Co-installer) for enhedsklassen og selve enheden. Derudover definerer inf-filen type, producent, model af enheden, driverklasse, nødvendige filer og ressourcer.

Co-installer (strukturelt en almindelig DLL) er et ekstra installationsprogram kaldet på installationsstadiet, som udfører installationstrin, der er specifikke for underklassen eller enheden, såsom forberedelse af infrastrukturen til, at driveren kan fungere i systemet (f.eks. installation af NET .Framework-pakke), der viser konfigurationsdialogbokse, som giver brugeren mulighed for at angive indstillinger for en specifik enhed.

En vigtig egenskab ved medinstallatører er, at de om nødvendigt binder forekomster af en ny enhed til de protokoller, der kræves til drift. Dette kan for eksempel gælde for forskellige typer kommunikationsenheder, der kræver forskellige protokoller og transporter for at fungere, såsom ndis, pppoe, tcpip, tcpip6, smb, netbt.
.inf-filen beskriver desuden operationerne med at pakke ud, kopiere, køre, omdøbe filer, tilføje og slette nøgler i registreringsdatabasen og meget mere.
Lad os dog vende tilbage til hovedalgoritmen for installation af en driver i Windows. Hvis enhedsdriverinstallatøren ikke finder passende drivere på de steder, der er angivet ovenfor, markerer systemet enheden som uidentificeret.

I dette tilfælde bliver brugeren bedt om at fortsætte med at installere enheden gennem appletten. Enhedshåndtering. Efter at brugeren uafhængigt har valgt enheden og angiver placeringen af ​​driverfilerne, fortsætter driverinstallationsalgoritmen sit arbejde, og det næste trin er at kontrollere driverens digitale signatur.

Bekræftelse af driverens digitale signatur

Faktum er, at driveren, som en del af kernetilstandskoden, er en ret kritisk komponent i operativsystemet, og eventuelle fejl foretaget af udvikleren i driverkoden kan nemt føre til alvorlige fejl (BSOD) i systemet. Microsoft har i nogen tid efterhånden været ret følsomme over for kvaliteten af ​​driverkode, og i forbindelse hermed er mekanismer som driver digital signatur og systemdriversignaturpolitik blevet indført i Windows operativsystemer.

En chaufførs digitale signatur er en datastreng med variabel længde, der giver en vis sikkerhed for, at førerkoden er oprettet af en pålidelig kilde og ikke har været genstand for uautoriserede ændringer.

Det næste trin er brugertilstandsdelen af ​​PnP-managerkoden, som kontrollerer systemdriverens signeringspolitik. Hvis systempolitikken instruerer kernekoden til at blokere eller advare om installationen af ​​usignerede drivere, parser PnP-administratoren driverens inf-fil for tilstedeværelsen af ​​et CatalogFile-direktiv, der peger på en katalogfil (en fil med en .cat-filtype), der indeholder digital signatur af driverpakken.

En katalogfil (.cat) er en speciel fil, der fungerer som en digital signatur for hele driverpakken, fordi hver fil inkluderet i driverpakken ikke er signeret separat. Den eneste undtagelse er opstartsfasens kernedriverbinære filer, men disse kontrolleres af separat kernekode.

For at teste drivere og signere dem blev Microsoft Windows Hardware Quality Lab (WHQL) dannet, som grundigt tester drivere, der leveres med Windows-distributioner, samt drivere fra større hardwareleverandører. For alle andre chaufførudviklere er der fastsat procedurer for at opnå mulighed for selvstændigt at signere chauffører på betalt basis. Når en chauffør består alle WHQL-test, bliver den "signeret". Dette betyder, at WHQL genererer en hash eller unik signatur for driveren, der unikt identificerer driverfilerne, og derefter signerer den ved hjælp af kryptografiske algoritmer ved hjælp af en speciel Microsoft-privat nøgle, der bruges til at signere drivere. Den signerede hash placeres i en mappefil (.cat-fil), der placeres direkte i driverpakkens bibliotek.
Under driverinstallationsprocessen udtrækker PnP-manageren i brugertilstand driversignaturen fra .cat-filen, dekrypterer signaturen ved hjælp af Microsofts offentlige nøgle og sammenligner den resulterende hash med hashen i den installerede driverfil. Hvis hasherne matcher, markeres driveren som bestået WHQL-test. Hvis signaturen ikke kan verificeres, handler PnP-manageren i overensstemmelse med indstillingerne for systemdriverens signeringspolitik, enten forbyder installationen af ​​driveren eller tillader stadig installationen af ​​driveren.

Oprettelse af en sikkerhedskopi

Det er en ret god Windows-strategi at oprette et gendannelsespunkt, før du tilføjer nye enhedsdrivere til systemet. Dette skyldes først og fremmest det faktum, at en kernetilstandsdriver, der indeholder en fejl, kan få systemet til at blive fuldstændig ubrugeligt, og hvad skal vi så gøre med dette system? Selv på trods af alle signaturer og kontroller, bør brugeren være i stand til at rulle konfigurationen tilbage, hvis han for eksempel ikke kunne lide noget efter installationen.

Driver installation

På dette tidspunkt implementeres tredjepartsdriverpakken til systemdriverlageret. Derefter udfører systemet den faktiske installation af driveren fra driverlageret, hvilket gøres ved hjælp af %Windir%\System32\drvinst.exe-værktøjet. På dette stadium opstår følgende hændelser:

  • inf-filen for driveren kopieres til den specialiserede mappe %Windir%/inf. For tredjepartsdrivere er det almindeligt at omdøbe filen til OEMx.inf, hvor x er serienummeret på inf-filen i mappen.
  • Operativsystemkoden registrerer det faktum, at inf-filen er installeret i registreringsdatabasen.
  • En enhedsknude (devnode) oprettes i registreringsdatabasen langs stien HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ \\ , som indeholder detaljerede oplysninger om enheden.
  • Driverbinære filer kopieres til målmappen %Windir%\System32\DRIVERS og muligvis andre målmapper. Registreringsnøgler er opdateret.
  • En registreringsnøgle svarende til driveren genereres: HKLM\SYSTEM\CurrentControlSet\Services\driver_name. Nøgleparametrene genereres.
  • En registreringsnøgle, der er ansvarlig for at logge driverhændelser, genereres, placeret i grenen HKLM\SYSTEM\CurrentControlSet\Services\EventLog\System\driver_name.
  • PnP-manageren kalder DriverEntry-proceduren for hver nyinstalleret driver. Kernetilstandens PnP-manager forsøger derefter at "starte" driveren ved at indlæse den i hukommelsen og kalde driverens AddDevice-rutine for at informere driveren selv om tilstedeværelsen af ​​den enhed, som den blev indlæst til.

Lokation for førerinformation

Ud over at beskrive selve driverinstallationsalgoritmen i Windows, vil jeg gerne fremhæve et separat afsnit og afsætte det til en beskrivelse af mulige placeringer for placering af oplysninger om drivere i filsystemet og registreringsdatabasen. Fra et praktisk synspunkt er denne information beregnet til at forenkle manuel redigering i tilfælde af fatale fejl. Følgende er steder, hvor du kan bemærke spor af føreroplysninger.

Generelle driverlogfiler

Der er en række logfiler på systemet, der kan hjælpe med forskellige driverproblemer.

  • %Windir%\setupact.log -- indeholder fejlfindingsmeddelelser frasprogrammet, som er en Win32 DLL, der ledsager enhedsinstallationsprocessen;
  • %Windir%\inf\setupapi.app.log -- indeholder meddelelser fraen;
  • %Windir%\inf\setupapi.dev.log -- indeholder meddelelser fra enhedsinstallationsprocessen;

Driver log

Hvis du bruger Package Manager (pkgmgr) til at installere/afinstallere en pakke, som (til gengæld) installerer, opdaterer eller afinstallerer en driver, så har du mulighed for at aktivere (til fejlretningsformål) oprettelsen af ​​en speciel logfil-drivere .log , som kun vil indeholde driverspecifikke fejl. For at oprette denne log skal du oprette/indstille følgende registreringsnøgle og derefter køre pkgmgr igen. Herefter vil en drivers.log-fil blive oprettet i den mappe, hvorfra pkgmgr blev startet.
Afdeling: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Device Installer
Nøgle: DebugPkgMgr
Type: DWord
Værdi: 1

%Windir%\inf

Alle inf-filer er gemt i denne mappe. Som nævnt ovenfor, efter installation af en tredjepartsdriver på systemet, omdøbes dens inf-fil til OEMx.inf, så du kan se en hel række lignende filer i mappen. Operativsystemkoden husker det faktum, at inf-filen blev installeret i registreringsdatabasen.

%Windir%\System32\DRIVERS

Dette er den mappe i Windows-filsystemet, hvor driverfilerne er placeret. I moderne operativsystemer, og jeg taler nu om Windows Vista og senere, har det overvældende flertal af drivere i denne mappe .sys-udvidelser, dll-filer er mindre almindelige, men dette ændrer ikke den generelle betydning, da uanset udvidelse, alle er de identiske i struktur med .dll-filer. I tidligere operativsystemer blev formater som .drv og .vxd stødt på.

%Windir%\System32\DriverStore

En systemsamling af drivere, som er beregnet til at indeholde hver eneste driver, der passerede gennem dit system. Brugt siden Windows Vista. Før du installerer en driver i operativsystemet, kontrollerer den specialiserede kode først driversignaturen, derefter syntaksen for driverinf-filerne, derefter rettighederne for den aktuelle bruger, og først derefter tilføjer alle driverkomponenter til systemsamlingen. Og først efter dette kan driveren bruges i systemet til at installere enheder uden brugerindblanding.

HKLM\SYSTEM\CurrentControlSet\Enum

En registreringsdatabase, der indeholder oplysninger om de enheder, der findes i systemet. PnP-manageren opretter en nøgle her for hver enhed i formatet HKLM\SYSTEM\CurrentControlSet\Enum\Tæller\enheds-ID. hvor Enumerator er busidentifikatoren beskrevet ovenfor i artiklen, opnået på enhedsoptællingsstadiet, deviceid er enhedstypeidentifikationen. Nøglen indeholder følgende oplysninger: enhedsbeskrivelse, hardwareidentifikatorer (hardware-id), kompatible enhedsidentifikatorer (kompatibelt ID) og ressourcekrav. Bikuben er forbeholdt brug udelukkende af operativsystemkode, så brugerapplikationer og drivere frarådes at interagere direkte med den og opfordres til at bruge dokumenterede systemfunktioner.

HKLM\SYSTEM\CurrentControlSet\Control

En registreringsdatabase, der indeholder oplysninger om forskellige driverkonfigurationsparametre under opstart af operativsystemet. Indeholder så vigtige nøgler som:

  • Klasse indeholder oplysninger om enhedsinstallationsklasser, som bruges til at gruppere enheder, der er konfigureret og installeret på lignende måde. For hver installationsklasse indeholder denne nøgle en nøgle, hvis navn matcher GUID-navnet på den tilsvarende installationsklasse.
  • CoDeviceInstallers indeholder oplysninger om klasse co-installere
  • DeviceClasses indeholder information om enhedsgrænseflader, der er registreret i systemet. enhver driver, der ønsker at interagere med brugertilstandsprogrammer på systemet, skal have en grænseflade. Enhedsgrænsefladeklassen udsætter funktionaliteten af ​​enheden og dens driver for andre systemkomponenter og brugertilstandsapplikationer.

HKLM\SYSTEM\CurrentControlSet\Services

En registerhive, der bruges til at placere information om alle tjenester (drivere) i systemet. Hver systemdriver placerer ret vigtige globale oplysninger om sig selv i formularens forbindelser HKLM\SYSTEM\CurrentControlSet\Services\<Имя_драйвера> , som bruges af driveren under initialiseringsprocessen ved systemets opstartsfase. Bikuben bruges aktivt af PnP-manageren til at videregive parametre, når driverinitieringsproceduren kaldes.
Denne busk indeholder følgende elementer:

  • ImagePath - indeholder den fulde sti til driverens binære fil (billede). installationsprogrammet udfylder denne værdi baseret på data fra inf-filen i driverpakken;
  • Parametre - gemmer individuelle føreroplysninger, udfyldt baseret på de data, der er placeret i driverpakkens inf-fil;
  • Ydeevne - information til overvågning af ydeevnen af ​​den enhed, der styres af føreren. Angiver navnet på ydeevneovervågnings-DLL'en og navnene på de funktioner, der eksporteres af denne DLL. Udfyldes baseret på data hentet fra inf-filen;

HKLM\SYSTEM\CurrentControlSet\HardwareProfiles

En registreringsdatabase, der indeholder oplysninger om systemhardwareprofiler og er designet til at understøtte denne teknologi. En hardwareprofil er blot et sæt ændringer til standardhardwarekonfigurationen og servicekonfigurationen (oprindelig konfiguration), indlæst ved systemstart. Indeholder specifikke ændringer til den originale, primære hardwareprofil konfigureret i to registreringsnøgler: HKLM\SOFTWARE og HKLM\SYSTEM. Bruges ikke i Windows 7, selvom registreringsdatabasenøgler forbliver, sandsynligvis af kompatibilitetsårsager.


Nogle gange kan .inf og andre Windows systemfejl relateres til problemer i Windows registreringsdatabasen. Flere programmer kan bruge .inf-filen, men når disse programmer afinstalleres eller ændres, efterlades nogle gange "forældreløse" (forkerte) Windows registreringsdatabaseposter.

Grundlæggende betyder dette, at selvom den faktiske sti til filen kan have ændret sig, er dens forkerte tidligere placering stadig registreret i Windows-registreringsdatabasen. Når Windows forsøger at finde disse forkerte filreferencer (Filplaceringer på din computer), kan der opstå en .inf-fejl. Derudover kan en malware-infektion have ødelagt poster i registreringsdatabasen, der er forbundet med Academic Fitness Tools for Academic Success. Disse korrupte Windows registreringsdatabaseposter skal således rettes for at løse problemet ved roden.

Manuel redigering af Windows registreringsdatabasen for at fjerne ugyldige .inf nøgler anbefales ikke, medmindre du er PC Service professionel. Fejl ved redigering af registreringsdatabasen kan gøre din pc ubrugelig og forårsage uoprettelig skade på dit operativsystem. Faktisk kan selv et komma placeret det forkerte sted forhindre din computer i at starte!

På grund af denne risiko, kan vi varmt anbefale at bruge en betroet registreringsdatabasen oprydder som WinThruster (Udviklet af Microsoft Gold Certificeret Partner) til at scanne og reparere alle .inf-relaterede registreringsdatabase problemer. Ved hjælp af en registreringsdatabase oprydder, kan du automatisere processen med at finde korrupte poster i registreringsdatabasen, manglende filreferencer (såsom dem der forårsager .inf fejlen), og ødelagte links i registreringsdatabasen. Før hver scanning oprettes der automatisk en sikkerhedskopi, så du kan fortryde ændringer med et enkelt klik og beskytter dig mod mulig skade på din computer. Det bedste er, at eliminering af registreringsfejl kan forbedre systemets hastighed og ydeevne dramatisk.


Advarsel: Medmindre du er en erfaren pc-bruger, anbefaler vi IKKE at redigere Windows-registreringsdatabasen manuelt. Brug af Registreringseditor forkert kan forårsage alvorlige problemer, der kan kræve, at du geninstallerer Windows. Vi garanterer ikke, at problemer som følge af forkert brug af Registreringseditor kan rettes. Du bruger Registreringseditor på egen risiko.

Før du manuelt reparerer Windows-registreringsdatabasen, skal du oprette en sikkerhedskopi ved at eksportere en del af registreringsdatabasen, der er knyttet til .inf (f.eks. Academic Fitness Tools for Academic Success):

  1. Klik på knappen Begynde.
  2. Gå ind " kommando"V søgelinje... KLIK IKKE ENDNU GÅ IND!
  3. Mens du holder tasterne nede CTRL-Skift på dit tastatur skal du trykke på GÅ IND.
  4. En dialogboks for adgang vil blive vist.
  5. Klik Ja.
  6. Den sorte boks åbnes med en blinkende markør.
  7. Gå ind " regedit" og tryk GÅ IND.
  8. I registreringseditoren skal du vælge den .inf-relaterede nøgle (f.eks. Academic Fitness Tools for Academic Success), du vil sikkerhedskopiere.
  9. På menuen Fil Vælg Eksport.
  10. På listen Gem til Vælg den mappe, hvor du vil gemme sikkerhedskopien af ​​nøglen Academic Fitness Tools for Academic Success.
  11. I marken Filnavn Indtast et navn til backupfilen, såsom "Academic Fitness Tools for Academic Success backup."
  12. Sørg for feltet Eksportområde værdi valgt Udvalgt gren.
  13. Klik Gemme.
  14. Filen vil blive gemt med filtypenavn .reg.
  15. Du har nu en sikkerhedskopi af din .inf-relaterede post i registreringsdatabasen.

De følgende trin til manuel redigering af registreringsdatabasen vil ikke blive beskrevet i denne artikel, da de sandsynligvis vil beskadige dit system. Hvis du ønsker mere information om at redigere registreringsdatabasen manuelt, så tjek venligst nedenstående links.