Опять глупый вопрос по созданию BusDriver

Тема в разделе "WASM.NT.KERNEL", создана пользователем ov4inka, 4 май 2009.

  1. ov4inka

    ov4inka New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2008
    Сообщения:
    37
    Разбираю пример из DDK toaster и не могу понять на каком этапе система определяет какой дальше драйвер в стеке подгружать. То есть у меня есть драйвер шины, который по запросу создает новый PDO. Так вот, как система определяет какие функциональные драйверы цепляются далее?
    На примере: Как я понимаю, функциональный драйвер pciIde обнаруживает новое устройство storage. Создает для него PDO-драйвер и посылает IoInvalidateDeviceRelations. Дальше система опрашивает функциональные драйверы на наличие изменений и, если таковые имеются, то начинает работать с созданными PDO (посылает различные IRP_MN_QUERY_CAPABILITIES и т.д.). Я правильно все понимаю? А вот как система понимает, что к этому PDO в стек надо вешать disk, на disk - partmgr? Это тоже узнается через один из IRP_MN_QUERY_... или как?
     
  2. g00r

    g00r New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2009
    Сообщения:
    20
    Эта информация содержится в реестре.
    Кое-что можно узнать здесь http://www.wasm.ru/print.php?article=drvw2k15
    Конкретно для твоего случая - \\\Реестр\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}\
     
  3. ov4inka

    ov4inka New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2008
    Сообщения:
    37
    Спасибо, статья немного разъяснила дело. Однако все равно до конца не ясно. Получается, что система черпает информацию из inf файла. Получается, что если я пропишу в inf-файле:
    Class = DiskDrive
    ClassGUID = {4D36E967-E325-11CE-BFC1-08002BE10318}
    то драйвер шины создаст PDO, система к PDO сама добавит в стек disk и т.д.?
    Также в статье сказано, что система смотрит на параметр Service и по нему загружает соответствующий сервис. А где в inf-файле прописывается этот параметр. Так и писать service = disk?
     
  4. g00r

    g00r New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2009
    Сообщения:
    20
    Прочитай все статьи http://www.wasm.ru/series.php?sid=9. Там узнаешь про сервисы и много другого полезного.
     
  5. ams007

    ams007 New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2007
    Сообщения:
    86
    IRP_MJ_PNP.IRP_MN_QUERY_ID
    IRP_MJ_PNP.IRP_MN_QUERY_TEXT
    или как там они правильно называются...

    Данные, которые положишь по этим запросам и лягут в реестр.
    Я так диски делал.
     
  6. ov4inka

    ov4inka New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2008
    Сообщения:
    37
    ams007
    Понимаю, что весьма самонадеянно, но не мог бы ты исходничек кинуть. Очень интересно посмотреть..