Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: WDK. Драйвер - фильтр нижнего уровня.  (Прочитано 16257 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mestereo
Интересующийся

ru
Offline Offline

« : 19-04-2011 00:51 » 

В общем он мне нужен для курсового по Системному программированию, но это для красного словца.
Суть в том что я пытаюсь разобраться в тех исходниках которые идут в комплекте с WDK (конкретно C:\WinDDK\7600.16385.1\src\usb\usbsamp)
Компилирую:
 
Цитата
  • Run the build –ceZ command in the usbsamp directory to build usbsamp.sys and usbsamp.exe.
  • Copy KMDF coinstaller (wdfcoinstallerMMmmm.dll), usbsamp.sys, usbsamp.exe, and usbsamp.inf to a floppy disk or a temporary directory on the target system.

- все в порядке, даже файлик wdfcoinstaller01009.dll - докладываю в папочку

Но на этапе установки вылезают косяки:
 1. в руководстве сказано

Цитата
Make sure your device has been programmed with the device VID/PID in the USBSAMP.inf file. If not, edit the device VID, PID, and description text to match your test board/device.

  - не могу понять что требуется, и как там убедиться в правильности...
 2. Ну и далее при через установку нового оборудования устанавливаю драйвер - (он в начале ругался и ставился с ошибкой 10 - не запускается, не требует ресурсов...) - и находиться в Диспетчере устройств не в категории USB, а в новой категории Sample Device - вот эта проблемма как была так и осталась, хотя должно быть так -
 
Цитата
You should be able to see the device in the Device manager under "Universal Serial Bus controllers

ну и соответственно не работает

пробовал устанавливать с помощью KmdManager - устанавливается успешно - но запуститься не может. Пишет "файл не найден" - очень подробно и понятно, блин...

теперь для полной картины выкладываю изображения:

   
   
   



-----------------------------------------------------------
  • Ну и, в общем, то что делать?   Не понял
  • А за одно, туда ли я полез... там еще есть "usbview", и osrusbfx2\kmdf - хотя то ли это, что мне нужно?
Записан
mestereo
Интересующийся

ru
Offline Offline

« Ответ #1 : 19-04-2011 11:38 » 

Простите меня за этот нубский вопрос. я уже понял, что src\usb\usbsamp - это usb-driver, а не driver-filter, и что он требует конкретной железки для себя для этого и нужны были эти значения PID/VID

Теперь мне надо изменить вопрос - теперь это даже вопросы:
  • \src\usb\osrusbfx2\umdf\filter - это ведь пример фильтра?
  • - но он написал с использованием фреймворка umdf - что означает что он работает в user-mode - что как я понимаю означает что он работает не на 0-кольце защиты?
  • если так, и для kmdf нет msdn примера драйвера-фильтра, то подскажите автора которого следует посмотреть (Я сышал есть Агуров и Солдатов, но еще не разбирался кто из них о чем писал и как писал)
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 19-04-2011 14:15 » 

0. что пока не ясно - вам usb фильтр нужен или просто фильтр?  WDM или обязательно WDF?
1. да, FX2 это такая тестовая железка для usb была на основе Сypres-овского чипа. драйвер под нее. фильтр наверное тоже.
2. судя по названию - да. соответственно - тоже)
3. сложно сказать...  попробуйте src\kmdf\toaster\filter\  это не usb фильтр, это просто общий вид фильтра, но он только upper device filter....
если не обязателен WDF, и можно WDM то 3790.1830\src\general\toaster\  - там оба варианта LowerFilters и UpperFilters.

литература https://forum.shelek.ru/index.php/topic,14645.0.html
Агуров - там WDF не рассматривалось и вообще драйвера лишь косвенно. это больше архитектура usb. но знать матчасть полезно.
про архитектуру usb шины (чтоб знать) я бы порекомендовал еще https://forum.shelek.ru/index.php/topic,14645.msg257887.html#msg257887
солдатов - ну... не знаю. по моему там тоже только WDM.

попробуйте Пенни Орвик посмотреть-полистать, если интересуют конкретно WDF . там куча всего было. думаю есть и про фильтры...

PS WDF - это обертка над WDM
« Последнее редактирование: 20-04-2011 06:41 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
mestereo
Интересующийся

ru
Offline Offline

« Ответ #3 : 19-04-2011 20:22 » 

Спасибо большое, я пока залип на путеводителе по стандарту USB, как осмыслю все, наверняка появится куча вопросов.
или может и сам разберусь

Добавлено через 21 час, 33 минуты и 28 секунд:
У меня тут назрел еще один нубский вопрос  Здесь была моя ладья..., пошел по вашим ссылкам и нашел два фильтра kmdf и wdm, соответственно в дерикториях
\src\general\toaster\kmdf\filter
\src\general\toaster\wdm\filter

Если не вдаваться в подробности, то какая идеологическая разница в этих двух направлениях написания драйверов,
и почему при компилировании kmdf драйвер-фильтра мы получаем .inf и .sys,
а при компилировании wdm драйвер-фильтра находим только .sys

P.S. Я не понимаю зачем в драйвер-фильтре файл .inf?

P.P.S.
Хочу еще для полноты разъяснить что именно мне нужно: Драйвер-фильтр нижнего уровня, работающий в 0-м кольце защиты.
Функциональность - нужно будет ловить и обрабатывать пакеты, в подробности вдаваться не буду (они и не нужны).
Разумеется должна быть управляющая программа со своей функциональностью.
И если я правильно понял - то мне надо нацелить свой взор на wdm?
« Последнее редактирование: 20-04-2011 17:55 от mestereo » Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 20-04-2011 18:46 » 

inf получается  не при компилировани. он просто есть) и скорее всего он общий, на оба случая.
зачем он нужен? ну... там стоит рассматривать весь проект toaster вместе.
toaster - это такой универсальный учебный проект на тему основной функциональности. он включает и функциональный драйвер и драйвер шины помоему, и фильтр и т.д.
а inf нужен чтобы установить эти фильтры на девайсом toaster-а вместе с самим девайсом. в inf-е скорее всего так и прописано.

идеологическая разница... кажется начав читать Пенни Орвик, вынес оттуда примерно следующее:
"Мы (типа майкрософт) очень опечалены тем, насколько Вы (драйверописатели) пишите кривые дрова, которые потом рушат систему, а пользователи валят все на кривость ОСи. В связи с этим Мы написали некие базовые примитивы KMDF, которые по сути все равно вызывают WDM функции, но отчасти уменьшают эффект вашей кривизны"))
если я правильно все понял)

короче говоря, это функции, которые, как считают в майкрософте, упрощают жизнь в плане изучения тонкостей.
все обработчики устанавливается по умолчанию, и если программист, что то напрочь забыл сделать - за него это сделают.
грубо говоря.

что выбрать - а что больше понравится... KMDF я так и не смотрел, скажу честно. насколько я понимаю они полностью взаимозаменяемы должны быть. но исторически про WDM - информации и книг пока больше. пока. а там видно будет.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
mestereo
Интересующийся

ru
Offline Offline

« Ответ #5 : 23-04-2011 09:12 » 

 Здесь была моя ладья... у меня еще вопрос уже более конкретный
Суть моей задачи в шифровании файла при копировании на флешку и соответственно расшифровке при передаче в обратную сторону.
1) К какому драйверу лучше его цеплять - к файловой системе () или к к USB (вроде куда-то к usbhub.sys или под usbstore.sys)
2) я так понял что уже не смогу найти небольшой пример для моей задачи.. или все таки смогу?
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 23-04-2011 09:22 » 

1. обычно цепляют к файловой
2. DDK3790.1830\src\storage\filters

поищите на форуме по словам "фильтр флешка" было несколько тем
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
mestereo
Интересующийся

ru
Offline Offline

« Ответ #7 : 23-04-2011 09:33 » 

я уже посмотрел DDK3790.1830\src\storage\filters - это очень внушительные программулины, но разобраться думаю можно...

P.S. разве файловая система имеет представление куда она записывает информацию или считывает - я думал, что: у него есть что-то вроде общего адреса а дальше уже драйвера соответствующих устройств по своему обрабатывают запрос (Usb например) - совсем не так?
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 23-04-2011 09:45 » 

http://msdn.microsoft.com/en-us/library/ff552547(VS.85).aspx

Добавлено через 6 минут и 30 секунд:
+ поиск по форуму
« Последнее редактирование: 23-04-2011 09:51 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
resource
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 20-05-2011 20:50 » 

Хотите шифровать файлы, значит и цепляться нужно к файловой системе. Если драйверы файловой системы и диска не "кустарные", то вполне себе можно определить о каком носителе идёт речь (усб или нет).
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines