Ühtse töö kõigi personaalarvuti seadmetega Windowsis ja ka mõned muud operatsioonisüsteemi funktsioonid pakuvad draiverite komplekt. Draiverite kirjutamiseks peate hästi tundma programmeerimist, kerneli põhimõtteid ja mitmesuguseid Windowsi alamsüsteeme.
Vajalik
Windowsi draiveri arenduskomplekt
Juhised
Samm 1
Laadige alla Windowsi draiveri arenduskomplekti (DDK) jaotis saidilt microsoft.com (saadaval MSDN-i tellijatele) ja installige see oma arvutisse. See pakett sisaldab kõiki draiverite arendamiseks ja ehitamiseks vajalikke tööriistu (kompilaator, linker, päisefailid, teegid), samuti põhjalikku dokumentatsiooni.
2. samm
Uurige üksikasjalikult kogu Windowsi draiverite kirjutamise kohta saadaolevat dokumentatsiooni. Kasutage DDK ja sellega seotud MSDN-i teema (msdn.microsoft.com) viideteavet. Peate täielikult mõistma Windowsi draiverimudeli (WDM) kõiki aspekte ja mõistma arhitektuuri põhimõisteid. Peate selgelt mõistma erinevusi kasutajarežiimi ja kerneli režiimi draiverite, seadme draiverite ja failisüsteemi draiverite vahel. Peate teadma erinevate draiverite klasside omadusi, nende tüüpe (siini draiverid, filtrid, funktsionaalsed draiverid) ja alamtüüpe (kuvadraiverid, modemid, võrguseadmed, paralleel- ja jadapordid, salvestusseadmed). Pöörake erilist tähelepanu korduvkasutatavate IRP-dega pakettpõhise sisend- / väljundprintsiipide, mäluhalduse, erandite käsitlemise ja sünkroonimisobjektide õige rakendamise põhimõtetele.
3. samm
Määratlege selgelt arendatava draiveri funktsionaalsus. Selle põhjal tehke kindlaks, millist tüüpi ja klassi see kuulub.
4. samm
Valige programmeerimiskeel. Traditsiooniliselt rakendatakse kerneli režiimis draivereid C. Kasutajarežiimi draiverid töötatakse tavaliselt välja C ++ keeles. Nendest reeglitest on mitu erandit. Näiteks kliendi minidraiverid heli- ja videovoogude jaoks, WDM-i helidraiverid tuumarežiimi minisadamate jaoks, WIA-draiverid ja mõnikord kuvaridraiverid on kirjutatud C ++ keeles.
5. samm
Looge draiveri tõmmet rakendav projekt. Uurige näidetega DDK kataloogi. Leidke õige draiveri demoprojekt. Kui te ei leia sobivat näidet, looge ise vajalikud lähtekoodi sisaldavad failid ja looge skriptifailid. Näiteks tuumarežiimi draiveri väljatöötamisel peate juurutama funktsiooni DriverEntry, mis sisaldab nii initsialiseerimiskoodi kui ka mõnda standardset rutiini (näiteks AddDevice, StartIo jne).
6. samm
Rakendage draiveri funktsionaalsus. Lisage kood eelmises etapis loodud funktsioonidele. Lisage loogika I / O-päringute jms käitlemiseks