Перевести драйвер на WDM с IoRegisterDeviceInterface
От: Alexiski  
Дата: 16.08.05 09:04
Оценка:
Есть legacy драйвер, ни к какому железу не привязанный. Соответственно, устанавливается и стартует через SCManager, после чего прямо в DriverEntry создается FDO и SymbolicLink к нему. Все работает.

Возникла необходимость перехода на WDM с использованием интерфейса. Выползли проблемы:

1) При попытке выполнить IoRegisterDeviceInterface прямо на FDO — недопустимая операция с устройством (правильно, так и должно быть, судя по раскопкам этот путь в корне неверный, привожу только для полноты картины)
2) При попытке найти какой-нибудь левый PDO и подключиться к нему — та же картина. Вопрос: Можно ли найти и использовать левый PDO ?
3) При попытке сделать как положено, т. е. вынести создание устройства в AddDevice — AddDevice не вызывается, драйвер не запускается с сообщением "все устройства, связанные с данной службой остановлены". Вопрос: Как заставить вызываться AddDevice ?

PS. Можно ли обойти указанные проблемы, если устанавливать драйвер через inf ? Там, вроде, можно прописать интерфейсы сразу. Но избавит ли это от вызова IoRegisterDeviceInterface ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.