Организация ввода-вывода. Драйверы WDM. Рощин А.В. - 19 стр.

UptoLike

Составители: 

19
драйверах-фильтрах хранится в разделах системного реестра. В разделе
устройства, содержащем информацию об экземпляре устройства, могут
присутствовать параметры UpperFilters и LowerFilters, которые определяют
соответственно верхние и нижние драйверы-фильтры для этого экземпляра. В
реестре имеется также раздел для класса, к которому относится данное
устройство. Раздел класса также может содержать параметры
UpperFilters и
LowerFilters. Они определяют драйверы-фильтры, загружаемые системой для
каждого устройства этого класса.
Часто бывает необходимо знать, в какой последовательности система
загружает драйверы. Ранее уже говорилось о том, что процесс загрузки драйвера
приводит к отображению его кода на виртуальную память. Из
последовательности загрузки драйверов наиболее важной является информация о
порядке вызовов функций AddDevice драйверов. Здесь последовательность
такова (рисунок 1.7) [3]:
вызов функций AddDevice всех нижних драйверов-фильтров, указанных
в разделе устройства в порядке их следования в параметре LowerFilters,
вызов функций AddDevice всех нижних драйверов-фильтров, указанных
в разделе класса в порядке их следования в параметре LowerFilters,
вызов функции AddDevice
функционального драйвера, определяемого
параметром Service в разделе устройства,
вызов функций AddDevice всех верхних драйверов-фильтров, указанных
в разделе устройства в порядке их следования в параметре UpperFilters,
вызов функций AddDevice всех верхних драйверов-фильтров, указанных
в разделе класса в порядке их следования в параметре UpperFilters.
Для того чтобы наглядно увидеть
иерархию устройств и драйверов, можно
воспользоваться утилитой DevView, имеющейся на диске к [3].
На рисунке 1.9 показан результат работы утилиты на конкретном
компьютере. На рисунке выбран параллельный принтер, и показана информация
по объекту PDO (физический объект устройства), а также дополнительные
данные (details).
драйверах-фильтрах хранится в разделах системного реестра. В разделе
устройства,       содержащем   информацию     об    экземпляре   устройства,   могут
присутствовать параметры UpperFilters и LowerFilters, которые определяют
соответственно верхние и нижние драйверы-фильтры для этого экземпляра. В
реестре имеется также раздел для класса, к которому относится данное
устройство. Раздел класса также может содержать параметры UpperFilters и
LowerFilters. Они определяют драйверы-фильтры, загружаемые системой для
каждого устройства этого класса.
      Часто бывает необходимо знать, в какой последовательности система
загружает драйверы. Ранее уже говорилось о том, что процесс загрузки драйвера
приводит      к     отображению    его   кода      на   виртуальную    память.   Из
последовательности загрузки драйверов наиболее важной является информация о
порядке вызовов функций AddDevice драйверов. Здесь последовательность
такова (рисунок 1.7) [3]:
      − вызов функций AddDevice всех нижних драйверов-фильтров, указанных
         в разделе устройства в порядке их следования в параметре LowerFilters,
      − вызов функций AddDevice всех нижних драйверов-фильтров, указанных
         в разделе класса в порядке их следования в параметре LowerFilters,
      − вызов функции AddDevice функционального драйвера, определяемого
         параметром Service в разделе устройства,
      − вызов функций AddDevice всех верхних драйверов-фильтров, указанных
         в разделе устройства в порядке их следования в параметре UpperFilters,
      − вызов функций AddDevice всех верхних драйверов-фильтров, указанных
         в разделе класса в порядке их следования в параметре UpperFilters.
      Для того чтобы наглядно увидеть иерархию устройств и драйверов, можно
воспользоваться утилитой DevView, имеющейся на диске к [3].
      На рисунке 1.9 показан результат работы утилиты на конкретном
компьютере. На рисунке выбран параллельный принтер, и показана информация
по объекту PDO (физический объект устройства), а также дополнительные
данные (details).

                                         19