Кіріспе

Компьютерлік техникада Windows Driver Model (WDM), бір кезде Win32 Driver Model деп те белгілі болған, бұл құрылғы драйверлері үшін арналған негізгі құрылым. Ол Windows 98 және Windows 2000 жүйелерімен бірге енгізілді, бұрынғы Windows нұсқаларында, мысалы Windows 95 және Windows 3.1, сондай-ақ Windows NT Driver Model-де қолданылған VxD драйверін алмастыру мақсатында жасалды.

Шолу

WDM драйверлері қабаттасқан түрде жинақталып, бір-бірімен I/O сұрау пакеттері (IRP) арқылы байланысады. Microsoft Windows Driver Model талаптарды біркелкілендіру және жазуға қажетті код көлемін азайту арқылы Windows 9x және Windows NT өнімдері үшін драйвер модельдерін біріктірді. WDM драйверлері Windows 98 немесе Windows 2000-ден бұрынғы операциялық жүйелерде, мысалы, Windows 95 (WDM моделін қосатын OSR2 жаңартуынан бұрын), Windows NT 4.0 және Windows 3.1 жүйелерінде жұмыс істемейді. WDM стандартына сәйкес драйверлер Windows 98, Windows 98 екінші нұсқасы, Windows Me, Windows 2000, Windows XP, Windows Server 2003 және Windows Vista (кері үйлесімділік үшін) жүйелерінде x86 негізіндегі компьютерлерде екіұшты және бастапқы үйлесімді болуы мүмкін. WDM драйверлері болашаққа қарай үйлесімді болу үшін жасалған, сондықтан WDM драйвері бастапқыда жазылған Windows нұсқасынан кейінгі нұсқада жұмыс істей алады, бірақ бұл драйвердің жаңа нұсқада енгізілген жаңа мүмкіндіктерді пайдалана алмайтынын білдіреді. WDM әдетте кері үйлесімді емес, яғни WDM драйверінің Windows-тың ескі нұсқасында жұмыс істеуіне кепілдік жоқ. Мысалы, Windows XP Windows 2000 үшін жазылған драйверді пайдалана алады, бірақ Windows XP-де енгізілген жаңа WDM мүмкіндіктерін пайдаланбайды. Дегенмен, Windows XP үшін жазылған драйвер Windows 2000-де жүктелуі мүмкін немесе жүктелмеуі мүмкін. WDM Windows 2000 ядролық режиміндегі драйверлердің аралық қабатында орналасқан және Windows үшін драйверлерді жазудың функционалдығын және жеңілдігін арттыру мақсатымен енгізілді. WDM негізінен Windows 98 және Windows 2000 арасында екіұшты және бастапқы үйлесімділікке арналған, бірақ мұндай қажеттілік әрқашан тумайды, сондықтан нақты драйверлер екі операциялық жүйе үшін де жасалуы мүмкін.

Құрылғының ядролық режіміндегі драйверлер

Windows Drivers Model (WDM) құрылғылары үшін Microsoft Windows операциялық жүйелеріне ғана тән ядролық режимдегі драйверлерге тәсілді іске асырады. WDM құрылғы драйверлері үшін қабатты архитектураны іске асырады, ал компьютердің әрбір құрылғысы драйверлер стегімен қызмет көрсетеді. Алайда, осы стектегі әрбір драйвер аппараттық тәуелсіз мүмкіндіктерді жоғарыдағы және төмендегі драйверден тізбектеп оқшаулауға болады. Осылайша, стектегі драйверлердің бір-бірімен тікелей өзара әрекеттесуіне қажеті жоқ. WDM дисплей және желілік карта сияқты құрылғылардың кең ауқымы үшін архитектураны және құрылғы процедураларын анықтайды, бұл Желілік драйвер интерфейсінің спецификациясы (NDIS) деп аталады. NDIS архитектурасындағы қабатты желілік драйверлерге жабдықты басқаратын төменгі деңгейдегі драйверлер және желілік деректерді тасымалдауды іске асыратын жоғарғы деңгейдегі драйверлер кіреді, мысалы, Трансмиссияны басқару протоколы (TCP). WDM құрылғы драйверлерінің үш түрін анықтаса да, нақты құрылғы үшін барлық драйвер стектерінде құрылғы драйверлерінің барлық түрлері кездеспейді. WDM құрылғы драйверлерінің үш түрі:

Автобус драйвері: Негізгі платадағы әрбір автобус үшін бір автобус драйвері бар, ол осы автобусқа қосылған барлық құрылғыларды анықтау және қосылып-қосылмау оқиғаларына жауап беру үшін жауапты. Microsoft PCI, PnPISA, SCSI, USB және FireWire сияқты автобус драйверлерін операциялық жүйенің бір бөлігі ретінде ұсынады. Функционалдық драйвер: Бұл құрылғының басты драйвері және оқу және жазу операцияларын басқару арқылы құрылғының операциялық интерфейсін қамтамасыз етеді. Функционалдық драйверлерді құрылғы өндірушілері жазады және олардың аппараттық жабдықпен өзара әрекеттесуі үшін Windows операциялық жүйесінде белгілі бір автобус драйверінің болуы қажет. Сүзгі драйвері: Бұл драйвер міндетті емес, және құрылғының мінез-құлқын өзгерте алады, мысалы, кіріс және шығыс сұраныстарын. Бұл драйверлер төменгі және жоғарғы деңгейдегі сүзгі драйверлері ретінде іске асырылуы мүмкін.

Нысанға бағдарланған драйверлер стегі

Функционалдық драйверлер мен шина драйверлері көбінесе драйвер/мини-драйвер жұптары ретінде жүзеге асырылады, бұл практикада сынып немесе мини-сынып, немесе порт немесе минипорт жұбы болып табылады. Шинаға қосылған құрылғылар үшін шина драйверлері сыныптық драйверлер ретінде жүзеге асырылады және аппараттық тәуелсіз болып табылады. Олар белгілі бір құрылғы түрінің жұмысын қолдайды. Windows операциялық жүйелері kbdclass.sys драйвері сияқты бірнеше сыныптық драйверлерді қамтиды, ол пернетақталар үшін арналған. Miniclass драйверлерін құрылғы өндірушісі ұсынады және тек белгілі бір сыныптың нақты бір құрылғысы үшін құрылғыға қатысты операцияларды қолдайды. Порт драйверлері перифериялық аппараттық интерфейс үшін жалпы кіріс/шығыс (I/O) операцияларын қолдайды. Порт драйверлерінің негізгі функционалдығы операциялық жүйемен міндетті түрде анықталады, ал Windows операциялық жүйелері әртүрлі порт драйверлерін интеграциялайды. Мысалы, i8042prt.sys порт драйвері 8042 микроконтроллеріне PS/2 пернетақталарын негізгі платаның перифериялық шинасына қосады. Минипорт драйверлері, миникласс драйверлері сияқты, аппараттық өндірушілермен қамтамасыз етіледі және тек негізгі платадағы портқа қосылған перифериялық аппараттық құрылғылардың құрылғыға қатысты операцияларын қолдайды. Құрылғыға I/O сұранысын өңдейтін әрбір драйвердің негізгі жадқа жүктелетін сәйкес объектісі болады. Windows операциялық жүйесі құрылғы объектін байланысты сыныптан құрайды. Құрылғы объектілерінде олардың драйверіне нұсқаулар сақталатын DEVICE OBJECT типіндегі құрылымдар бар. Орындалу кезінде бұл нұсқаулар драйвердің диспетчерлік режімін және мүшелік функцияларын табу үшін қолданылады. WDM драйвер стегіндегі сүзгі драйвері құрылғы объектісі, жоғарғы сүзгі ретінде белгілі, I/O менеджерінен құрылғыға арналған I/O сұрау пакетін (IRP) алады. Егер жоғарғы сүзгі драйвері сұранысқа қызмет ете алмаса, ол драйвер стегінде бір қадам төмендегі драйвердің объектісін табады. IRP IoCallDrive функциясын шақыру арқылы драйвер стегіне жіберіледі және функциялық драйвер құрылғы объектісімен өңделеді, сонымен қатар функционалдық құрылғы объектісі деп те аталады. Функциялық драйвер құрылғысы өз кезегінде IRP-ні төменгі сүзгіге, басқа сүзгі құрылғы объектісіне жіберуі мүмкін. Содан кейін IRP физикалық құрылғы объектісі ретінде жұмыс істейтін шина драйверіне жіберілуі мүмкін. Шина драйвері объектісі драйвер стегінің ең төменгі жағында орналасқан және Windows операциялық жүйесінің ядросының бөлігі болып табылатын аппараттық абстракция қабатымен өзара әрекеттеседі, бұл Windows операциялық жүйелеріне әртүрлі процессорларда, әртүрлі жад басқару архитектураларында және әртүрлі I/O шина архитектуралары бар әртүрлі компьютерлік жүйелерде жұмыс істеуге мүмкіндік береді. IRP-нің орындалуы стектегі кез келген драйвер объектісі I/O менеджеріне сұранысты нәтижесімен және күй белгісімен қайтарғанда аяқталады.

Әр түрлі Windows операциялық жүйелері үшін құрылғы драйверлері

WDM құрылғысын Microsoft операциялық жүйе мен ядро ішіндегі драйверлер арасындағы байланысты жеңілдету үшін жасады. Windows операциялық жүйелерінде драйверлер Dynamic Link Libraries (DLL) немесе SYS файлдары түрінде жүзеге асырылады. WDM стандартына сәйкес келетін драйверлер жобалау, инициализациялау, қосылу және ажыратылу, қуатты басқару және жадты бөлу қағидаларын сақтауы керек. Іс жүзінде WDM драйверлерін бағдарламалаушылар жаңа объектіге бағытталған драйверлерді құрастырғанда үлкен код бөліктерін қайта пайдаланады. Бұл WDM стегіндегі драйверлерде техникалық сипаттамаларда көрсетілмеген қалдық функционалдық болуы мүмкін дегенді білдіреді. Microsoft сапа тестінен өткен драйверлерге Microsoft цифрлық қолтаңбасын қояды. Microsoft Hardware Compatibility Tests және Driver Development Kit сенімділік және жүктеме сынақтарын қамтиды. Нақты аппараттық компонент үшін жасалмаған құрылғы драйвері басқа құрылғының жұмыс істеуіне мүмкіндік беруі мүмкін. Себебі аппараттық құрылғы класының негізгі функционалдығы ұқсас. Мысалы, бейнекарта класының функционалдығы Microsoft Basic Display Adapter драйверіне көптеген түрлі бейнекарталармен жұмыс істеуге мүмкіндік береді. Дегенмен, құрылғыға қате драйверді орнату құрылғының толық функционалдығын пайдалану мүмкін еместігін және Windows операциялық жүйесінің нашар жұмыс істеуіне және тұрақсыздануына әкелуі мүмкін. Аппараттық құрылғы өндірушілері өнімділікті жақсарту, функционалдылықты қосу немесе қателерді түзету үшін нақты Windows операциялық жүйелері үшін жаңартылған құрылғы драйверлерін шығара алады. Егер құрылғы күтілгендей жұмыс істемесе, соңғы құрылғы драйверлерін өндірушінің веб-сайтынан жүктеп, орнату керек. Құрылғы драйверлері Windows операциялық жүйесінің нақты нұсқалары үшін жасалған, ал Windows-тың бұрынғы нұсқаларының драйверлері басқа нұсқалармен дұрыс немесе мүлдем жұмыс істемеуі мүмкін. Көптеген құрылғы драйверлері ядролық режимде жұмыс істейтіндіктен, операциялық жүйенің бұрынғы нұсқасына арналған драйверлерді орнату Windows операциялық жүйесінің тұрақсыздығына әкелуі мүмкін. Сондықтан Windows операциялық жүйесінің жаңа нұсқасына компьютерді көшіру барлық аппараттық компоненттер үшін жаңа құрылғы драйверлерін орнатуды талап етеді. Windows 10 үшін құрылғы драйверлерін жаңарту және орнату көшіру процесіне қиындықтарды әкелді. Көптеген құрылғы драйверлерінің үйлесімділік мәселелеріне мыналар жатады: 32 биттік Windows операциялық жүйесі үшін 32 биттік құрылғы драйвері, ал 64 биттік Windows операциялық жүйесі үшін 64 биттік құрылғы драйвері қажет. 64 биттік құрылғы драйверлері Microsoft-пен қолтаңбаланған болуы керек, өйткені олар ядролық режимде жұмыс істейді және компьютерлік аппаратқа шектеусіз қол жеткізеді. Windows 10-ға дейінгі операциялық жүйелер үшін Microsoft өндірушілерге 64 биттік драйверлеріне өздері қол қоюға рұқсат берді, егер өндірушілер үйлесімділік сынақтарын өткен болса. Алайда, Windows 10 64 биттік драйверлері енді Microsoft-пен қолтаңбаланған болуы керек. Сондықтан құрылғы өндірушілері драйверлерін Microsoft-қа тестілеу және бекіту үшін жіберуі керек. Драйверді орнату жиынтығына inf каталогындағы барлық файлдар кіреді және жиынтықтағы барлық файлдар орнатылуы керек, әйтпесе құрылғы драйверін орнату сәтсіз аяқталуы мүмкін. Windows 10-ға дейінгі операциялық жүйелер нұсқаларында драйверді орнатуға қажетті барлық файлдар жиынтыққа енгізілмеген, өйткені бұл талап тұрақты түрде орындалмаған. Кейбір құрылғы драйверлерін орнатушылар GUI пайдаланушы интерфейсіне ие, көбінесе пайдаланушыдан конфигурациялық мәліметтерді енгізуді қажет етеді. Пайдаланушы интерфейсінің болмауы құрылғы драйверін орнату сәтті болмайтынын білдірмейді. Сонымен қатар, Windows 10 құрылғы драйверлеріне пайдаланушы интерфейсін қосуға рұқсат етілмейді. Windows 10 операциялық жүйесі желілік құрылғылар үшін Network Driver Interface Specification (NDIS) 10.x стандартын қолданады. Windows XP желілік құрылғы драйверлері NDIS 5.x стандартын қолданады және кейінгі Windows операциялық жүйелерімен жұмыс істей алады, бірақ өнімділікті жақсарту үшін желілік құрылғы драйверлері NDIS 6.0 немесе одан жоғары нұсқаларын жүзеге асыруы керек. Сол сияқты, WDDM - бұл Windows Vista және одан жоғары нұсқалары үшін драйвер моделі, ол графикалық драйверлерде қолданылатын XPDM стандартын алмастырады.

Құрылғы менеджері

Құрылғылар менеджері — Microsoft Windows операциялық жүйелеріндегі Басқару тақтасының құралы. Ол пайдаланушыларға компьютерге қосылған аппараттық құрылғыларды көруге және басқаруға мүмкіндік береді. Пайдаланушылар аппараттық құрылғылардың қасиеттерін көруге және өзгертуге болады, сондай-ақ ол құрылғы драйверлерін басқару үшін негізгі құрал болып табылады.