Enotno delo z vsemi napravami osebnega računalnika v sistemu Windows in nekaterimi drugimi funkcijami operacijskega sistema zagotavlja nabor gonilnikov. Če želite pisati gonilnike, morate dobro razumeti programiranje, načela jedra in različne podsisteme Windows.
Potrebno
Windows Driver Development Kit
Navodila
Korak 1
Prenesite distribucijo Windows Driver Development Kit (DDK) z Microsofta.com (na voljo naročnikom MSDN) in jo namestite v svoj računalnik. Ta paket vsebuje vsa potrebna orodja za razvoj in izdelavo gonilnikov (prevajalnik, povezovalnik, datoteke z zaglavji, knjižnice), pa tudi obsežno dokumentacijo.
2. korak
Podrobno preučite vso razpoložljivo dokumentacijo o pisanju gonilnikov za Windows. Uporabite referenčne informacije iz DDK in sorodne teme MSDN (msdn.microsoft.com). V celoti morate razumeti vse vidike Windows Driver Model (WDM) in razumeti osnovne arhitekturne koncepte. Jasno morate razumeti razlike med gonilniki v uporabniškem načinu in načinu jedra, gonilniki naprav in gonilniki datotečnega sistema. Poznati morate značilnosti različnih razredov gonilnikov, njihove vrste (gonilniki vodila, filtri, funkcionalni gonilniki) in podvrste (gonilniki zaslona, modemi, omrežne naprave, vzporedna in serijska vrata, naprave za shranjevanje). Še posebej bodite pozorni na načela paketno vodenega V / I z IRP-ji za večkratno uporabo, upravljanje pomnilnika, ravnanje z izjemami in pravilno uporabo sinhronizacijskih objektov.
3. korak
Jasno določite funkcionalnost gonilnika, ki se razvija. Na podlagi tega določite, kateremu tipu in razredu pripada.
4. korak
Izberite programski jezik. Tradicionalno so gonilniki v načinu jedra vgrajeni v C. Gonilniki v uporabniškem načinu so običajno razviti v jeziku C ++. Ta pravila imajo več izjem. Na primer, odjemalski minidriverji za avdio in video tokove, zvočni gonilniki WDM za miniport v načinu jedra, gonilniki WIA in včasih zaslonski gonilniki so napisani v jeziku C ++.
5. korak
Ustvarite projekt, ki izvaja škrbino gonilnikov. Raziščite imenik DDK s primeri. Poiščite pravi demo demonstracijski projekt. Če ne najdete primernega primera, ustvarite datoteke, ki vsebujejo zahtevano izvorno kodo, in zgradite datoteke skriptov. Na primer, ko razvijate gonilnik v načinu jedra, morate implementirati funkcijo DriverEntry, ki vsebuje inicializacijsko kodo in nekatere standardne rutine (na primer AddDevice, StartIo itd.).
6. korak
Implementirajte funkcionalnost gonilnika. Funkcijam, ustvarjenim v prejšnjem koraku, dodajte kodo. Dodajte logiko za obdelavo V / I zahtev itd.