Windows тутумундагы персоналдык компьютердин бардык шаймандары менен бирдиктүү иштөө, ошондой эле операциялык тутумдун кээ бир башка функциялары драйверлердин жыйындысы тарабынан камсыздалат. Драйверлерди жазуу үчүн, программалоону, өзөктүн принциптерин жана ар кандай Windows подсистемаларын жакшы түшүнүшүңүз керек.
Зарыл
Windows Driver Development Kit
Нускамалар
1 кадам
Windows Driver Development Kit (DDK) бөлүштүрүүнү microsoft.com сайтынан жүктөп алыңыз (MSDN абоненттери үчүн жеткиликтүү) жана компьютериңизге орнотуңуз. Бул пакетте драйверлерди иштеп чыгуу жана куруу үчүн бардык керектүү шаймандар (компилятор, шилтеме, баш файлдар, китепканалар), ошондой эле толук документтер бар.
2-кадам
Windows үчүн драйверлерди жазуу боюнча бардык жеткиликтүү документтерди толук изилдеп чыгыңыз. DDK жана MSDNдин тиешелүү темасынан (msdn.microsoft.com) шилтеме маалыматты колдонуңуз. Сиз Windows Драйвер Моделинин (WDM) бардык аспектилерин толугу менен түшүнүп, негизги архитектуралык түшүнүктөрдү түшүнүшүңүз керек. Колдонуучу режими жана ядро режими драйверлери, түзмөктөрдүн драйверлери жана файл тутумунун драйверлеринин ортосундагы айырмачылыктарды так түшүнүшүңүз керек. Сиз ар кандай класстагы драйверлердин өзгөчөлүктөрүн, алардын түрлөрүн (автобус драйверлери, фильтрлер, функционалдык драйверлер) жана кичи түрлөрүн (дисплей драйверлери, модемдер, тармактык шаймандар, параллель жана сериялык порттор, сактоочу шаймандар) билишиңиз керек. Пакет менен башкарылган Кайра колдонулуучу IRP тутумундагы киргизүү / чыгаруу принциптерине, эс тутумду башкарууга, өзгөчө учурларда иштөөгө жана синхрондоштуруу объектилерин туура колдонууга өзгөчө көңүл буруңуз.
3-кадам
Иштелип жаткан драйвердин функционалдуулугун так аныктаңыз. Ушунун негизинде анын кайсы типке жана класска таандык экендигин аныктаңыз.
4-кадам
Программалоо тилин тандаңыз. Адатта, ядро режиминин драйверлери С колдонулат. Колдонуучу режиминин драйверлери көбүнчө C ++ тилинде иштелип чыгат. Бул эрежелерден бир нече өзгөчөлүктөр бар. Мисалы, аудио жана видео агымдар үчүн кардардын миниверлери, ядро режиминдеги минипорт үчүн WDM аудио драйверлери, WIA драйверлери жана кээде дисплей драйверлери С ++ тилинде жазылат.
5-кадам
Драйвердин стубун ишке ашырган долбоор түзүңүз. DDK каталогун мисалдар менен изилдеңиз. Туура айдоочу демо-долбоорун табыңыз. Эгер ылайыктуу мисал таба албасаңыз, анда керектүү баштапкы кодду камтыган файлдарды өзүңүз түзүп, скрипт файлдарын түзүңүз. Мисалы, ядро режиминдеги драйверди иштеп чыгууда, инициализация кодун, ошондой эле кээ бир стандарттуу эрежелерди камтыган DriverEntry функциясын ишке ашырышыңыз керек (AddDevice, StartIo ж.б.).
6-кадам
Драйвердин функционалдуулугун ишке ашыруу. Мурунку кадамда түзүлгөн функцияларга кодду кошуңуз. I / O суроо-талаптарын иштетүү үчүн логиканы кошуңуз ж.б.