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

UptoLike

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

17
установочными секциями в этом .INF-файле. То есть, подсистема
в этом случае пытается найти .INF-файл с командой,
соответствующей идентификатору устройства. Обнаружив такую
команду, подсистема установки выполняет инструкции,
приведенные в соответствующей секции установки. При
завершении процесса установки подсистема создаст в системном
реестре раздел для данного устройства.
Если же диспетчер PnP найдет в реестре
сведения об устройстве,
необходимость в вызове подсистемы установки отпадет, и все этапы, связанные с
установкой будут пропущены.
Теперь диспетчер PnP знает, что в системе имеется устройство, за
обслуживание которого отвечает конкретный драйвер. Если этот драйвер еще не
загружен в виртуальную память, диспетчер PnP обращается к диспетчеру памяти
с запросом на отображение драйвера,
после чего система создает файловое
отображение. При этом производится выборка кода драйвера и необходимых
данных с использованием механизма подгрузки. Затем диспетчер памяти
вызывает функцию DriverEntry.
Далее диспетчер PnP вызывает функцию AddDevice, чтобы сообщить
драйверу об обнаружении нового экземпляра устройства (5) на рисунке 1.6.
Затем диспетчер PnP посылает драйверу шины пакет IRP с дополнительным
кодом IRP_MN_QUERY_RESOURCE_REQUIREMENTS
, который запрашивает
у драйвера шины описания требований устройства к ресурсам (номер прерывания,
адреса портов ввода-вывода, каналы DMA). Драйвер шины удовлетворяет этот
запрос – (6) на рисунке 1.6.
Теперь диспетчер PnP готов к настройке оборудования. Если выделение
ресурсов возможно, диспетчер PnP посылает драйверу пакет IRP_MJ_PNP с
дополнительным кодом функции IRP_MN_START_DEVICE. Драйвер
производит настройку и подключение ресурсов,
после чего устройство готово к
работе.
                установочными секциями в этом .INF-файле. То есть, подсистема
                в   этом     случае   пытается       найти   .INF-файл   с    командой,
                соответствующей идентификатору устройства. Обнаружив такую
                команду,       подсистема        установки   выполняет       инструкции,
                приведенные      в    соответствующей        секции   установки.    При
                завершении процесса установки подсистема создаст в системном
                реестре раздел для данного устройства.
      Если же диспетчер PnP найдет в реестре сведения об устройстве,
необходимость в вызове подсистемы установки отпадет, и все этапы, связанные с
установкой будут пропущены.
      Теперь диспетчер PnP знает, что в системе имеется устройство, за
обслуживание которого отвечает конкретный драйвер. Если этот драйвер еще не
загружен в виртуальную память, диспетчер PnP обращается к диспетчеру памяти
с запросом на отображение драйвера, после чего система создает файловое
отображение. При этом производится выборка кода драйвера и необходимых
данных с использованием механизма подгрузки. Затем диспетчер памяти
вызывает функцию DriverEntry.
      Далее диспетчер PnP вызывает функцию AddDevice, чтобы сообщить
драйверу об обнаружении нового экземпляра устройства (5) на рисунке 1.6.
      Затем диспетчер PnP посылает драйверу шины пакет IRP с дополнительным
кодом IRP_MN_QUERY_RESOURCE_REQUIREMENTS, который запрашивает
у драйвера шины описания требований устройства к ресурсам (номер прерывания,
адреса портов ввода-вывода, каналы DMA). Драйвер шины удовлетворяет этот
запрос – (6) на рисунке 1.6.
      Теперь диспетчер PnP готов к настройке оборудования. Если выделение
ресурсов возможно, диспетчер PnP посылает драйверу пакет IRP_MJ_PNP с
дополнительным       кодом      функции      IRP_MN_START_DEVICE.               Драйвер
производит настройку и подключение ресурсов, после чего устройство готово к
работе.



                                            17