Enhetlig arbeid med alle enheter på en personlig datamaskin i Windows, samt noen andre funksjoner i operativsystemet, leveres av et sett med drivere. For å kunne skrive drivere, må du ha god forståelse av programmering, prinsippene til kjernen og forskjellige Windows-delsystemer.
Nødvendig
Windows driverutviklingssett
Bruksanvisning
Trinn 1
Last ned Windows Driver Development Kit (DDK) -distribusjonen fra microsoft.com (tilgjengelig for MSDN-abonnenter) og installer den på datamaskinen din. Denne pakken inneholder alle nødvendige verktøy for å utvikle og bygge drivere (kompilator, linker, headerfiler, biblioteker), samt omfattende dokumentasjon.
Steg 2
Studer i detalj all tilgjengelig dokumentasjon om skriverdrivere for Windows. Bruk referanseinformasjonen fra DDK og relatert MSDN-emne (msdn.microsoft.com). Du må forstå alle aspekter av Windows Driver Model (WDM) og forstå de grunnleggende arkitektoniske konseptene. Du må tydelig forstå forskjellene mellom drivere for brukermodus og kjernemodus, enhetsdrivere og filsystemdrivere. Du må kjenne til funksjonene til forskjellige klasser av drivere, deres typer (bussjåfører, filtre, funksjonelle drivere) og undertyper (skjermdrivere, modemer, nettverksenheter, parallelle og serielle porter, lagringsenheter). Vær spesielt oppmerksom på prinsippene for pakkedrevet I / O med gjenbrukbare IRP-er, minnehåndtering, unntakshåndtering og riktig anvendelse av synkroniseringsobjekter.
Trinn 3
Definere klart funksjonaliteten til driveren som utvikles. På bakgrunn av dette, bestem hvilken type og klasse den tilhører.
Trinn 4
Velg et programmeringsspråk. Tradisjonelt er kjernemodusdrivere implementert i C. Brukermodusdrivere utvikles vanligvis i C ++. Det er flere unntak fra disse reglene. For eksempel er klientminidrivere for lyd- og videostrømmer, WDM-lyddrivere for kjernemodus miniporter, WIA-drivere og noen ganger skjermdrivere skrevet i C ++.
Trinn 5
Lag et prosjekt som implementerer driverstubben. Utforsk DDK-katalogen med eksempler. Finn riktig driverdemoprosjekt. Hvis du ikke finner et passende eksempel, kan du lage filene selv som inneholder den nødvendige kildekoden og bygge skriptfiler. For eksempel, når du utvikler en kjernemodusdriver, må du implementere DriverEntry-funksjonen, som inneholder initialiseringskoden samt noen standardrutiner (for eksempel AddDevice, StartIo, etc.).
Trinn 6
Implementere driverfunksjonaliteten. Legg til kode i funksjonene som ble opprettet i forrige trinn. Legg til logikk for å håndtere I / O-forespørsler, etc.