В документации везде упоминается что WMI предназначена для WDM драйверов (WMI extensions to WDM). К примеру, собственно для регистрации драйвера как провайдера Windows Management Instrumentation предлагается вызвать IoWMIRegistrationControl в AddDevice. Попробовал использовать эту технологию в legacy драйвере с тем лишь отличием что IoWMIRegistrationControl вызываю в DriverEntry и экземпляры именуются по basename. Это работает, но вот интересно где могут быть подводные камни, почему в документации акцентируется что эта технология предназначена для WDM драйверов?
Вот кажется нашел ответ на свой вопрос в статье "Внутри Windows Management Interface" (http://www.citforum.ru/operating_systems/articles/wmiin.shtml): Разработчики присвоили название провайдера Windows Driver Model (WDM) провайдеру драйверов устройств, потому что одинаковые интерфейсы WMI в драйверах Windows 2000 существуют и для Win98-драйверов. Поскольку это кросс-платформенные интерфейсы, они включены в зону ответственности WDM, кросс-платформенную архитектуру драйверов устройств. Windows 2000 размещает объекты WDM в пространстве имен \root\wmi.