Windows-тағы дербес компьютердің барлық құрылғыларымен бірыңғай жұмыс, сондай-ақ амалдық жүйенің кейбір басқа функциялары драйверлер жиынтығымен қамтамасыз етілген. Драйверлерді жазу үшін бағдарламалауды, ядро мен әр түрлі Windows ішкі жүйелерінің принциптерін жақсы түсінуіңіз керек.
Қажетті
Windows драйверін дамыту жинағы
Нұсқаулық
1-қадам
Windows драйверін дамыту жинағын (DDK) microsoft.com сайтынан жүктеп алыңыз (MSDN жазылушылары үшін қол жетімді) және оны компьютерге орнатыңыз. Бұл бумада драйверлерді әзірлеуге және құруға арналған барлық қажетті құралдар (компилятор, сілтеме, тақырыптық файлдар, кітапханалар), сонымен қатар кешенді құжаттама бар.
2-қадам
Windows үшін драйверлерді жазу бойынша барлық қолда бар құжаттарды егжей-тегжейлі оқып шығыңыз. DDK және қатысты MSDN тақырыбындағы анықтамалық ақпаратты қолданыңыз (msdn.microsoft.com). Сіз Windows драйверінің моделінің (WDM) барлық аспектілерін толық түсініп, негізгі архитектуралық ұғымдарды түсінуіңіз керек. Сіз пайдаланушы режимі мен ядро режимінің драйверлері, құрылғы драйверлері және файл жүйесі драйверлері арасындағы айырмашылықтарды нақты түсінуіңіз керек. Әр түрлі сыныптағы драйверлердің ерекшеліктерін, олардың түрлерін (шина драйверлері, сүзгілер, функционалды драйверлер) және кіші түрлерін (дисплей драйверлері, модемдер, желілік құрылғылар, параллель және сериялық порттар, сақтау құрылғылары) білу қажет. Пакет арқылы басқарылатын енгізу-шығару қағидаларына қайта қолдануға болатын IRP, жадыны басқару, ерекше жағдайларды өңдеу және синхрондау нысандарын дұрыс қолдану мәселелеріне ерекше назар аударыңыз.
3-қадам
Драйвердің функционалдығын нақты анықтаңыз. Осыған сүйене отырып, оның қай типке және сыныпқа жататынын анықтаңыз.
4-қадам
Бағдарламалау тілін таңдаңыз. Дәстүрлі түрде ядро режимінің драйверлері C-де жүзеге асырылады, пайдаланушы режимінің драйверлері әдетте C ++ тілінде дамиды. Бұл ережелерден бірнеше ерекшеліктер бар. Мысалы, аудио және видео ағындарға арналған клиенттік миниверлер, ядро режиміндегі минипорттарға арналған WDM аудио драйверлер, WIA драйверлер, кейде дисплей драйверлері C ++ тілінде жазылады.
5-қадам
Драйвер стубын іске асыратын жоба жасаңыз. DDK каталогын мысалдармен зерттеңіз. Драйвердің дұрыс жобасын табыңыз. Егер сіз сәйкес мысал таба алмасаңыз, қажетті бастапқы кодты қамтитын файлдарды өзіңіз жасаңыз және сценарий файлдарын құрыңыз. Мысалы, ядро режиміндегі драйверді әзірлеу кезінде инициализация кодын, сондай-ақ кейбір стандартты процедураларды (мысалы, AddDevice, StartIo және т.б.) қамтитын DriverEntry функциясын орындау қажет.
6-қадам
Драйвер функциясын іске асырыңыз. Алдыңғы қадамда жасалған функцияларға код қосыңыз. Енгізу-шығару сұраныстарын өңдеу үшін логиканы қосыңыз және т.б.