Page 81 - 4989
P. 81

надає  його  функціональний  інтерфейс.  Цей  драйвер
                           обов'язковий, крім тих випадків, коли введення-виведення
                           здійснюється  драйвером  шини  або  драйвером  фільтрів
                           шини.  Функціональний  драйвер  за  визначенням  має

                           найбільш  повну  інформацію  про  свій  пристрій.  Зазвичай
                           тільки  цей  драйвер  має  доступ  до  специфічних  регістрів
                           пристрою;

                        - драйвер-фільтр  -  драйвер,  що  підтримує  додаткову
                           функціональність пристрою (або існуючого драйвера) або
                           змінює запити вводу / виводу і відповіді на них від інших
                           драйверів.  Таких  драйверів  може  бути  кілька,  хоча  їх

                           присутність необов'язкова. Вони можуть працювати як на
                           більш  високому  рівні,  ніж  функціональний  драйвер  або
                           драйвер шини, так і на більш низькому.

                        У середовищі WDM один драйвер не може контролювати всі
                  аспекти  пристро:  драйвер  шини  інформує  диспетчер  PnP  про
                  пристрої,  підключених  до  шини,  в  той  час  як  функціональний

                  драйвер управляє пристроєм.
                        Згідно перерахованим вище типам драйверів, існує три типи
                  об'єктів:

                        - об'єкти фізичних  пристроїв  (PDO, Physical  Device  Object) -
                           ці      об'єкти       створюються            для      кожного          фізично
                           ідентифікованого  елемента  апаратури,  підключеного  до
                           шини даних;

                        - об'єкти  функціональних  пристроїв  (FDO,  Functional  Device
                           Object) - має на увазі одиницю логічної функціональності
                           пристрою;

                        - об'єкти  фільтрів  пристроїв  (FiDO,  Filter  Device  Object)  -
                           надають додаткову функціональність.
                        Послідовність завантаження драйверів пристроїв:
                        1.  Під  час  завантаження  операційної  системи  проводиться

                  завантаження  шинних  драйверів  для  кожної  відомої  системі
                  шини  (список  шин  створюється  при  установці  операційної
                  системи і зберігається в реєстрі);

                        2. Викликається DriverEntry, а потім AddDevice для кожного
                  шинного драйвера. У AddDevice створюється FDO для драйвера
                  системної шини.  Потім на створений FDO відправляється запит

                  IRP_MN_START_DEVICE;

                                                                 81
   76   77   78   79   80   81   82   83   84   85   86