Как мы все знаем, модель драйвера WDF, начиная с Windows 2000, разработка драйверов должна основываться на WDM. Однако ее разработка очень сложна, и мы не можем ожидать, что она будет такой же простой, как разработка приложений пользовательского режима. Чтобы улучшить эту ситуацию, Microsoft запустила новую среду разработки драйверов. Следует заранее отметить, что это не переосмысление, а моделирование и инкапсуляция на основе WDM. Важной особенностью является то, что это снижает сложность разработки. потому что:
1. Применить оригинальную объектно-ориентированную технологию обычного программирования для разработки драйверов. Хотя в WDM существует объектная модель, это совсем не то же самое, что настоящая объектно-ориентированная технология. Чтобы реализовать объектно-ориентированную технологию, Microsoft тщательно разработала объектную модель и инкапсулировала ее. Свойства, методы, события и т. д. «ни одно из них не может отсутствовать».
2. Драйверы режима ядра и драйверы пользовательского режима созданы с использованием одной и той же объектной модели и используют один и тот же базовый носитель. Этим фундаментом является WDF. Хотя WDF уже является инкапсулированной и определенной объектной моделью, для объектов режима ядра и пользовательского режима WDF является родительским объектом обоих. Другими словами, оба наследуются от WDF или оба являются производными от WDF. По отношению к режиму ядра производный объект называется «структурой KMD» или KMDF, а по отношению к пользовательскому режиму производная модель называется «структурой UMD» или UMDF; Независимо от модели платформы, ее внутренние методы инкапсуляции и поведение выполнения фактически реализуются с использованием WDM.
3. Что еще более важно, и что Microsoft неоднократно демонстрировала, это инкапсуляция некоторых общих функций поведения в драйверах: например, к этому общему поведению относятся функции Plug and Play и управление питанием. Поскольку большинству драйверов приходится иметь дело с проблемами Plug-and-Play и управления питанием, говорят, что для этого требуется около тысячи строк кода. Более того, без определенного уровня квалификации они могут не справиться с этим. Чтобы решить проблему раз и навсегда, WDF просто инкапсулировал в объект технологию Plug-and-Play и управление питанием, одним махом сделав это поведением объекта по умолчанию.
4. Изменена связь между ядром операционной системы и драйвером. В драйвере WDM, с одной стороны, приходится заниматься аппаратным обеспечением, а с другой - взаимодействием между драйвером. и ядро операционной системы. Теперь WDF отделяет драйвер от ядра операционной системы. Взаимодействие между драйвером и операционной системой завершается методами (функциями), инкапсулированными в фреймворк, так что разработчикам драйверов остается сосредоточиться только на обработке поведения оборудования. Это не только позволяет избежать недостатков сосредоточения внимания на одном в ущерб другому, но и из-за разделения двух сторон приносит большую пользу для определенных изменений в операционной системе и разработки поддерживающих драйверов для производителей оборудования. .
5. Оба режима драйверов (KMDF, UMDF) построены с использованием одной и той же среды, которая называется WDK.
То есть средой разработки KMDF и UMDF является WDK.
Windows Device Kit (WDK). Благодаря интеграции наборов тестов DDK становится WDK. WDK — это система разработки интегрированных драйверов для серии операционных систем Microsoft. Он сочетает в себе наборы Windows DDK и Hardware Compatibility Test (HCT) (инструменты тестирования совместимости оборудования), а также предоставляет внутренний набор тестов Microsoft для тестирования стабильности и надежности операционных систем Windows.
6. Несмотря на инкапсуляцию и внедрение объектно-ориентированной технологии, эффективность исполнения разработанного драйвера не уступает исходному.
Эта статья взята из блога CSDN. При перепечатке указывайте источник: http://blog.csdn.net/ding_3/archive/2009/12/23/5060907.aspx.
-