Kazi ya umoja na vifaa vyote vya kompyuta ya kibinafsi kwenye Windows, na pia kazi zingine za mfumo wa uendeshaji hutolewa na seti ya madereva. Ili kuandika madereva, unahitaji kuwa na uelewa mzuri wa programu, kanuni za kernel na mifumo anuwai ya Windows.
Muhimu
Kitanda cha Kuendeleza Dereva cha Windows
Maagizo
Hatua ya 1
Pakua usambazaji wa Windows Driver Development Kit (DDK) kutoka microsoft.com (inapatikana kwa wanachama wa MSDN) na usakinishe kwenye kompyuta yako. Kifurushi hiki kina zana zote muhimu za kukuza na kujenga madereva (mkusanyaji, kiunganishi, faili za kichwa, maktaba), na pia hati kamili.
Hatua ya 2
Jifunze kwa kina nyaraka zote zinazopatikana kwenye uandishi wa madereva ya Windows. Tumia habari ya kumbukumbu kutoka kwa DDK na mada inayohusiana ya MSDN (msdn.microsoft.com). Lazima uelewe kabisa mambo yote ya Windows Dereva Model (WDM) na ufahamu dhana za kimsingi za usanifu. Lazima uelewe wazi tofauti kati ya hali ya mtumiaji-mode na njia za kernel-mode, madereva ya kifaa, na madereva ya mfumo wa faili. Unahitaji kujua sifa za madarasa tofauti ya madereva, aina zao (madereva ya basi, vichungi, madereva ya kazi) na aina ndogo (onyesha madereva, modemu, vifaa vya mtandao, bandari zinazofanana na za serial, vifaa vya kuhifadhi). Zingatia haswa kanuni za I / O inayoendeshwa na Pakiti na IRP zinazoweza kutumika, usimamizi wa kumbukumbu, utunzaji wa ubaguzi, na utumiaji sahihi wa vitu vya usawazishaji.
Hatua ya 3
Eleza wazi utendaji wa dereva anayeendelezwa. Kulingana na hii, amua ni aina gani na darasa gani.
Hatua ya 4
Chagua lugha ya programu. Kijadi, madereva ya hali ya kernel yanatekelezwa katika C. Madereva ya hali ya mtumiaji kawaida hutengenezwa katika C ++. Kuna tofauti kadhaa kwa sheria hizi. Kwa mfano, minidrivers ya mteja kwa mito ya sauti na video, madereva ya sauti ya WDM kwa njia ndogo za njia za kernel, madereva ya WIA, na wakati mwingine madereva huonyesha katika C ++.
Hatua ya 5
Unda mradi unaotumia stub ya dereva. Gundua saraka ya DDK na mifano. Pata mradi sahihi wa onyesho la dereva. Ikiwa huwezi kupata mfano unaofaa, tengeneza faili mwenyewe ambazo zina msimbo wa chanzo unaohitajika na jenga faili za hati. Kwa mfano, wakati wa kukuza dereva wa hali ya kernel, unahitaji kutekeleza kazi ya DriverEntry, ambayo ina nambari ya uanzishaji na taratibu zingine za kawaida (kama vile AddDevice, StartIo, n.k.).
Hatua ya 6
Tekeleza utendaji wa dereva. Ongeza nambari kwa kazi zilizoundwa katika hatua ya awali. Ongeza mantiki kushughulikia maombi ya I / O, nk.