Windows haydovchi modeli - Windows Driver Model

Yilda hisoblash, Windows haydovchi modeli (WDM) - shuningdek, bir nuqtada Win32 haydovchi modeli - bu ramka qurilma drayverlari bilan kiritilgan Windows 98 va Windows 2000 almashtirish VxD kabi Windows-ning eski versiyalarida ishlatilgan Windows 95 va Windows 3.1, shuningdek Windows NT haydovchi modeli.

Umumiy nuqtai

WDM drayverlari stakka joylashtirilgan va bir-birlari orqali aloqa qilishadi I / O so'rov paketlari (IRP). Microsoft Windows Driver Model talablarni standartlashtirish va yozish uchun zarur bo'lgan kod miqdorini kamaytirish orqali Windows 9x va Windows NT mahsulot qatorlari uchun birlashtirilgan haydovchi modellarini taqdim etdi. WDM drayverlari Windows 95 (WDM modelini yonma-yon yuklaydigan OSR2 yangilanishidan oldin), Windows NT 4.0 va Windows 3.1 kabi Windows 98 yoki Windows 2000 dan oldingi operatsion tizimlarda ishlamaydi. WDM-ga muvofiq, haydovchilar bo'lishi mumkin ikkilik mos va manbaga mos keladi Windows 98, Windows 98 Second Edition orqali, Windows Me, Windows 2000, Windows XP, Windows Server 2003 va Windows Vista (orqaga qarab muvofiqligi uchun) yoqilgan x86 asoslangan kompyuterlar. WDM drayverlari bo'lishi uchun mo'ljallangan oldinga mos Shunday qilib, WDM drayveri dastlab Windows drayveri uchun yozilganidan yangi versiyasida ishlashi mumkin, ammo bu haydovchi yangi versiya bilan kiritilgan har qanday yangi xususiyatlardan foydalana olmasligini anglatadi. WDM odatda bunday emas orqaga qarab mos keladi, ya'ni WDM drayveri Windows-ning har qanday eski versiyasida ishlashiga kafolat bermaydi. Masalan, Windows XP uchun yozilgan haydovchidan foydalanishi mumkin Windows 2000 ammo Windows XP-da kiritilgan yangi WDM xususiyatlaridan hech biridan foydalanmaydi. Biroq, Windows XP uchun yozilgan haydovchi Windows 2000 da yuklanishi mumkin yoki bo'lmasligi mumkin.

WDM Windows 2000 ning vositachilik qatlamida mavjud yadro rejimi drayverlarga va Windows uchun drayverlarni yozish funksiyasini va qulayligini oshirish uchun kiritilgan. Garchi WDM asosan ishlab chiqilgan bo'lsa ham ikkilik va manba o'rtasida mos keladi Windows 98 va Windows 2000, bu har doim ham istalmagan bo'lishi mumkin va shuning uchun ikkala operatsion tizim uchun maxsus drayverlar ishlab chiqilishi mumkin.

Qurilmaning yadro rejimidagi drayverlari

Windows Drivers Model (WDM) yordamida qurilmalar uchun Microsoft yondashuvni amalga oshiradi yadro rejimi noyob haydovchilar Windows operatsion tizimlari. WDM uchun qatlamli arxitekturani amalga oshiradi qurilma drayverlari va kompyuterning har qanday qurilmasiga haydovchilar to'plami xizmat qiladi. Shu bilan birga, ushbu to'plamdagi har bir haydovchi yuqoridagi va uning ostidagi haydovchidan apparat mustaqil xususiyatlarini zanjir bilan ajratishi mumkin. Shunday qilib, stekdagi drayverlar bir-biri bilan bevosita aloqada bo'lishlari shart emas. WDM displey va kabi bir qator qurilmalar uchun arxitektura va qurilmalar protseduralarini belgilaydi tarmoq kartasi sifatida tanilgan Tarmoq drayveri interfeysining spetsifikatsiyasi (NDIS). NDIS me'morchiligida qatlamli tarmoq drayverlari apparatni boshqaradigan pastki darajadagi drayverlarni va tarmoq ma'lumotlarini uzatishni amalga oshiruvchi yuqori darajadagi drayverlarni o'z ichiga oladi. Transmissiyani boshqarish protokoli (TCP).[1]

WDM uchta turdagi drayverlarni aniqlasa-da, ma'lum bir qurilma uchun barcha drayvlar to'plamlari barcha turdagi drayverlarni o'z ichiga olmaydi. WDM qurilmasining uchta drayveri turi:[2]

Avtobus haydovchisi: Har bir kishi uchun avtobus anakartda bitta avtobus haydovchisi bor, bu avtobusga ulangan barcha qurilmalarni aniqlash va ulanish va ulash voqealariga javob berish uchun asosiy mas'uliyat. Microsoft operatsion tizimning bir qismi sifatida avtobus drayverlarini taqdim etadi,[3] kabi PCI, PnPISA, SCSI, USB va FireWire.

Funktsiya drayveri: bu qurilmaning asosiy drayveri va u o'qish va yozish operatsiyalarini bajarish orqali qurilmaning operatsion interfeysini ta'minlaydi. Funktsiya drayverlari qurilma sotuvchilari tomonidan yoziladi va ularning apparat bilan o'zaro ta'siri uchun ular Windows operatsion tizimida mavjud bo'lgan ma'lum bir avtobus haydovchisiga bog'liq.[4]

Filtrni haydovchi: Ushbu drayver ixtiyoriy va kirish va chiqish so'rovlari kabi qurilmaning ishini o'zgartirishi mumkin. Ushbu drayverlarni quyi va yuqori darajadagi filtr drayverlari sifatida amalga oshirish mumkin.[5]

Ob'ektga yo'naltirilgan haydovchi to'plami

Funktsiya drayverlari va avtobus drayverlari ko'pincha haydovchi / minidriver juftligi sifatida amalga oshiriladi, bu amalda sinf / miniclass yoki port / miniport juftligi.[6]

Avtobusga ulangan qurilmalar uchun avtobus drayverlari sinf drayveri sifatida amalga oshiriladi va apparat-agnostik hisoblanadi. Ular ma'lum bir turdagi qurilmaning ishlashini qo'llab-quvvatlaydi. Windows operatsion tizimlari qator drayverlarni o'z ichiga oladi, masalan, klaviatura uchun kbdclass.sys drayveri. Boshqa tomondan, miniclass drayverlari qurilmaning sotuvchisi tomonidan ta'minlanadi va faqat ushbu sinfning ma'lum bir qurilmasi uchun moslamaning o'ziga xos operatsiyalarini qo'llab-quvvatlaydi.[7]

Port haydovchilari umumiy qo'llab-quvvatlaydi kirish / chiqish Periferik apparat interfeysi uchun (I / U) operatsiyalar. Port drayverlarining asosiy funktsiyalari operatsion tizim tomonidan talab qilinadi va Windows operatsion tizimlari turli xil port drayverlarini birlashtiradi. Masalan, 8042 mikrokontroller uchun i8042prt.sys port drayveri ulanadi PS / 2 klaviaturalar anakart periferik avtobusiga. Miniport drayverlari, masalan, miniclass drayverlari, apparat sotuvchilari tomonidan ta'minlanadi va faqat anakartdagi portga ulangan periferik apparatning qurilmaga xos operatsiyalarini qo'llab-quvvatlaydi.[8]

Qurilma uchun I / O so'rovini bajaradigan har bir haydovchi mos keladigan ob'ektga ega, u ichiga yuklanadi asosiy xotira. Qurilma ob'ekti Windows operatsion tizimi tomonidan tegishli qurilma sinfidan yaratiladi. Qurilma moslamalari o'zlarining haydovchilariga ko'rsatgichlarni saqlaydigan DEVICE_OBJECT tipidagi tuzilmalarni o'z ichiga oladi. Ishlash vaqtida ushbu ko'rsatkichlar haydovchining jo'natish tartibini va a'zo funktsiyalarini aniqlash uchun ishlatiladi. WDM drayver to'plamida yuqori filtr deb nomlanadigan filtr drayveri moslamasi ob'ekti qabul qilinadi I / O so'rov paketi (IRP) I / U menejerining qurilmasi uchun. Agar yuqori filtr drayveri so'rovni bajara olmasa, u haydovchining ob'ektini haydovchi to'plamida bir qadam pastga topadi. IRP IoCallDrive () funktsiyasini chaqirish orqali drayverlar to'plamidan uzatiladi va funktsional qurilma ob'ekti deb ham ataladigan funktsiya drayveri qurilmasi ob'ekti tomonidan qayta ishlanadi. Funktsiya drayveri moslamasi ob'ekti o'z navbatida IRPni pastki filtrga, boshqa filtrlash moslamasiga o'tkazishi mumkin. Keyin IRP jismoniy qurilma ob'ekti sifatida ishlaydigan avtobus haydovchisiga o'tishi mumkin. Avtobus haydovchisi ob'ekti haydovchi to'plamining pastki qismida joylashgan va bilan o'zaro ta'sir qiladi apparat abstraktsiya qatlami, bu qismi Windows operatsion tizimining yadrosi va Windows operatsion tizimlarining turli xil tizimlarda ishlashiga imkon beradi protsessorlar, boshqacha xotirani boshqarish bo'limi arxitekturalari va turli xil I / U avtobus arxitekturalariga ega bo'lgan turli xil kompyuter tizimlari.[9] IRP-ning bajarilishi stekdagi har qanday haydovchi ob'ektlari so'rovni natijaga va holat bayrog'iga ega bo'lgan holda I / U menejeriga qaytarib berganda tugaydi.[10]

Turli xil Windows operatsion tizimlari uchun qurilma drayverlari

WDM ramkasi Microsoft tomonidan yadro ichidagi operatsion tizim va drayverlar o'rtasidagi aloqani soddalashtirish uchun ishlab chiqilgan. Windows operatsion tizimlarida drayverlar quyidagicha amalga oshiriladi Dinamik bog'lanish kutubxonalari .DLL yoki .SYS fayllari. WDM-ga mos drayverlar dizayn, ishga tushirish, ulanishni boshlash, quvvatni boshqarish va xotirani taqsimlash qoidalariga rioya qilishlari shart. Amalda WDM drayveri dasturchilari yangilarini yaratishda kodning katta qismlarini qayta ishlatadilar ob'ektga yo'naltirilgan haydovchilar. Bu shuni anglatadiki, WDM stekidagi drayverlar texnik xususiyatlarda hujjatlashtirilmagan qoldiq funktsiyalarni o'z ichiga olishi mumkin.[11] Microsoft sifat testidan o'tgan haydovchilar Microsoft tomonidan raqamli imzolangan. The Microsoft apparati mosligi testlari va Driver Development Kit ishonchlilik va stress testlarini o'z ichiga oladi.[12]

Muayyan apparat komponentlari uchun mo'ljallanmagan qurilma drayveri boshqa qurilmaning ishlashiga imkon berishi mumkin. Buning sababi shundaki, apparat moslamalari sinfining asosiy funktsional imkoniyatlari o'xshashdir. Masalan, videokartalar sinfining funksionalligi Microsoft Basic Display Adapter drayveriga turli xil videokartalar bilan ishlashga imkon beradi. Biroq, qurilma uchun noto'g'ri drayverni o'rnatish qurilmaning to'liq funksiyasidan foydalanib bo'lmasligini anglatadi va yomon ishlashga va Windows operatsion tizimining beqarorlashishiga olib kelishi mumkin. Uskuna sotuvchilari ma'lum Windows operatsion tizimlari uchun ishlashni yaxshilash, funksionallikni qo'shish yoki tuzatish uchun yangilangan qurilma drayverlarini chiqarishi mumkin xatolar. Agar qurilma kutilganidek ishlamasa, eng so'nggi drayverlarni sotuvchi veb-saytidan yuklab olish va o'rnatish kerak.[13]

Qurilma drayverlari ma'lum bir Windows operatsion tizim versiyalari uchun ishlab chiqilgan va oldingi Windows versiyasi uchun qurilmalar drayverlari to'g'ri ishlamasligi yoki boshqa versiyalar bilan umuman ishlamasligi mumkin. Ko'pgina qurilmalar drayverlari yadro rejimida ishlaydi, chunki oldingi operatsion tizim versiyasi uchun drayverlar o'rnatilishi Windows operatsion tizimida beqarorlik paydo bo'lishi mumkin. Shuning uchun kompyuterni Windows operatsion tizimining yuqori versiyasiga ko'chirish, barcha apparat komponentlari uchun yangi qurilma drayverlarini o'rnatishni talab qiladi. Qurilma drayverlarini yangilash va ularni o'rnatish Windows 10 migratsiya jarayoniga asoratlarni kiritdi.[14]

Qurilma drayverining keng tarqalgan muvofiqligi muammolariga quyidagilar kiradi: 32-bit qurilma drayveri 32-bitli Windows operatsion tizimi uchun talab qilinadi va 64-bit qurilma drayveri 64-bitli Windows operatsion tizimi uchun talab qilinadi. 64-bitli qurilmalar drayverlari Microsoft tomonidan imzolangan bo'lishi kerak, chunki ular yadro rejimida ishlaydi va kompyuter apparatlariga cheklovsiz kirish huquqiga ega. Windows 10-dan oldingi operatsion tizimlar uchun Microsoft sotuvchilarga moslik testlarini o'tkazgan deb taxmin qilib, sotuvchilarga o'zlarining 64 bitli drayverlarini imzolashga ruxsat berdi. Biroq, Windows 10 64-bitli drayvlar endi Microsoft tomonidan imzolanishi kerak. Shuning uchun qurilma sotuvchilari sinov va tasdiqlash uchun haydovchilarini Microsoft-ga topshirishlari kerak. Drayvni o'rnatish to'plami .inf katalogidagi barcha fayllarni o'z ichiga oladi va paketdagi barcha fayllarni o'rnatish kerak, aks holda qurilma drayverini o'rnatish muvaffaqiyatsiz bo'lishi mumkin. Windows 10-dan oldingi operatsion tizim versiyalari uchun drayverni o'rnatish uchun zarur bo'lgan barcha fayllar to'plamga kiritilmagan, chunki bu talab doimiy ravishda bajarilmagan. Ba'zi qurilma drayverini o'rnatuvchilar foydalanuvchi interfeysiga ega GUI, ko'pincha foydalanuvchi konfiguratsiyasini kiritishni talab qiladi. Foydalanuvchi interfeysining yo'qligi, qurilma drayverini o'rnatish muvaffaqiyatli emas degani emas. Bundan tashqari, Windows 10 qurilmasi drayverlariga foydalanuvchi interfeysini kiritish taqiqlangan. The Tarmoq drayveri interfeysining spetsifikatsiyasi (NDIS) 10.x Windows 10 operatsion tizimi tomonidan tarmoq qurilmalari uchun ishlatiladi. Tarmoq qurilmasi drayverlari uchun Windows XP NDIS 5.x dan foydalaning va keyingi Windows operatsion tizimlari bilan ishlashi mumkin, ammo ishlash sabablariga ko'ra tarmoq qurilmasi drayverlari NDIS 6.0 yoki undan yuqori versiyasini qo'llashlari kerak.[15] Xuddi shunday, WDDM Windows Vista va undan yuqori versiyalar uchun drayver modeli bo'lib, u grafik drayverlarda ishlatiladigan XPDM o'rnini bosadi.

Qurilmalar dispetcheri

The Qurilmalar dispetcheri Microsoft Windows operatsion tizimidagi Boshqarish paneli dasturidir. Bu foydalanuvchilarga kompyuterga biriktirilgan apparatni ko'rish va boshqarish imkonini beradi. Bu foydalanuvchilarga apparat qurilmalarining xususiyatlarini ko'rish va o'zgartirish imkonini beradi, shuningdek, qurilma drayverlarini boshqarish uchun asosiy vosita hisoblanadi.[16]

Tanqid

Windows Driver Model, ammo sezilarli yaxshilanishga ega VxD va Windows NT haydovchi modeli undan oldin ishlatilgan, haydovchilar uchun dasturiy ta'minot ishlab chiquvchilari tomonidan tanqid qilingan,[17] quyidagilar uchun eng muhim:

  • Bilan o'zaro aloqalar quvvatni boshqarish voqealar va ulang va o'ynang qiyin. Bu Windows mashinalari kira olmaydigan yoki chiqa olmaydigan vaziyatlarga olib kelishi mumkin uyqu rejimlari haydovchi kodidagi xatolar tufayli to'g'ri.
  • Kirish-chiqarishni bekor qilish to'g'ri.[18]
  • Har bir haydovchi uchun qozonxonani kompleks qo'llab-quvvatlash kodi talab qilinadi.
  • Sof yozishni qo'llab-quvvatlamaydi foydalanuvchi rejimi haydovchilar.

Shuningdek, Microsoft taqdim etgan hujjatlar va namunalar sifati bilan bog'liq bir qator muammolar mavjud edi.

Ushbu muammolar tufayli Microsoft WDM-ning yuqori qismida yangi deb nomlangan ramkalar to'plamini chiqardi Windows Driver Framework (WDF; avvalgi Windows Driver Foundation) o'z ichiga oladi Kernel-mode Driver Framework (KMDF) va Foydalanuvchi rejimi drayveri doirasi (UMDF). Windows Vista ham toza WDM, ham yangi WDF-ni qo'llab-quvvatlaydi. KMDF-ni Windows XP va hatto Windows 2000 uchun yuklab olish mumkin, UMDF esa Windows XP va undan yuqori versiyalarida.

Shuningdek qarang

Adabiyotlar

  1. ^ Marko Viyera; Joao Karlos Kunya, tahrir. (2013). Ishonchli hisoblash: 14-Evropa seminari, EWDC 2013, Coimbra, Portugaliya, 2013 yil 15-16 may, Ish yuritish.. Springer. p. 64. ISBN  9783642387890.
  2. ^ Marko Viyera; Joao Karlos Kunya, tahrir. (2013). Ishonchli hisoblash: 14-Evropa seminari, EWDC 2013, Coimbra, Portugaliya, 2013 yil 15-16 may, Ish yuritish.. Springer. p. 64. ISBN  9783642387890.
  3. ^ Marko Viyera; Joao Karlos Kunya, tahrir. (2013). Ishonchli hisoblash: 14-Evropa seminari, EWDC 2013, Coimbra, Portugaliya, 2013 yil 15-16 may, Ish yuritish.. Springer. p. 64. ISBN  9783642387890.
  4. ^ Marko Viyera; Joao Karlos Kunya, tahrir. (2013). Ishonchli hisoblash: 14-Evropa seminari, EWDC 2013, Coimbra, Portugaliya, 2013 yil 15-16 may, Ish yuritish.. Springer. p. 64. ISBN  9783642387890.
  5. ^ Marko Viyera; Joao Karlos Kunya, tahrir. (2013). Ishonchli hisoblash: 14-Evropa seminari, EWDC 2013, Coimbra, Portugaliya, 2013 yil 15-16 may, Ish yuritish.. Springer. p. 64. ISBN  9783642387890.
  6. ^ Bill Blunden (2009). Rootkit Arsenal: qochish va qochish. Jones & Bartlett Publishers. p. 460. ISBN  9781449661229.
  7. ^ Bill Blunden (2009). Rootkit Arsenal: qochish va qochish. Jones & Bartlett Publishers. p. 460. ISBN  9781449661229.
  8. ^ Bill Blunden (2009). Rootkit Arsenal: qochish va qochish. Jones & Bartlett Publishers. p. 460. ISBN  9781449661229.
  9. ^ Bill Blunden (2009). Rootkit Arsenal: qochish va qochish. Jones & Bartlett Publishers. 460-461 betlar. ISBN  9781449661229.
  10. ^ Deyv Penkler; Manfred Reitenspiess; Frensis Tam, nashrlar. (2006). Xizmatdan foydalanish imkoniyati: Uchinchi xalqaro xizmat ko'rsatish simpoziumi, ISAS 2006, Xelsinki, Finlyandiya, 2006 yil 15-16 may, Qayta ko'rib chiqilgan tanlangan hujjatlar. Springer Science & Business Media. p. 124. ISBN  9783540687245.
  11. ^ Deyv Penkler; Manfred Reitenspiess; Frensis Tam, nashrlar. (2006). Xizmatdan foydalanish imkoniyati: Uchinchi xalqaro xizmat ko'rsatish simpoziumi, ISAS 2006, Xelsinki, Finlyandiya, 2006 yil 15-16 may, Qayta ko'rib chiqilgan tanlangan hujjatlar. Springer Science & Business Media. p. 124. ISBN  9783540687245.
  12. ^ Deyv Penkler; Manfred Reitenspiess; Frensis Tam, nashrlar. (2006). Xizmatdan foydalanish imkoniyati: Uchinchi xalqaro xizmat ko'rsatish simpoziumi, ISAS 2006, Xelsinki, Finlyandiya, 2006 yil 15-16 may, Qayta ko'rib chiqilgan tanlangan hujjatlar. Springer Science & Business Media. p. 132. ISBN  9783540687245.
  13. ^ Bayron Rayt va Leon Plesniarski (2016). Microsoft Windows 10 uchun mutaxassis bo'yicha qo'llanma (imtihon 70-697, Windows qurilmalarini sozlash). O'qishni to'xtatish. p. 96. ISBN  9781285868578.CS1 maint: mualliflar parametridan foydalanadi (havola)
  14. ^ Bayron Rayt va Leon Plesniarski (2016). Microsoft Windows 10 uchun mutaxassis bo'yicha qo'llanma (imtihon 70-697, Windows qurilmalarini sozlash). O'qishni to'xtatish. p. 96. ISBN  9781285868578.CS1 maint: mualliflar parametridan foydalanadi (havola)
  15. ^ Bayron Rayt va Leon Plesniarski (2016). Microsoft Windows 10 uchun mutaxassis bo'yicha qo'llanma (imtihon 70-697, Windows qurilmalarini sozlash). O'qishni to'xtatish. p. 96. ISBN  9781285868578.CS1 maint: mualliflar parametridan foydalanadi (havola)
  16. ^ Bayron Rayt va Leon Plesniarski (2016). Microsoft Windows 10 uchun mutaxassis bo'yicha qo'llanma (imtihon 70-697, Windows qurilmalarini sozlash). O'qishni to'xtatish. p. 96. ISBN  9781285868578.CS1 maint: mualliflar parametridan foydalanadi (havola)
  17. ^ Oney, Valter (2003 yil 6-may). "Windows Driver Framework bilan tanishish". Windows Driver Developer-ning Digesti. Vol. 1 yo'q. 3. Arxivlangan asl nusxasi 2016-01-25.
  18. ^ "I / O tugatish / bekor qilish bo'yicha ko'rsatmalar". MSDN. Microsoft. 2003 yil 5-may. Olingan 2018-02-08.
  • Finnel, Lin (2000). MCSE imtihoni 70-215, Microsoft Windows 2000 Server. Microsoft Press. ISBN  1-57231-903-8.
  • Oney, Valter (2003). Windows haydovchi modelini dasturlash, Microsoft Press, ISBN  0-7356-1803-8.

Tashqi havolalar