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

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

ru
Offline Offline
Пол: Мужской
Челябинск, Россия


« : 20-03-2008 13:43 » 

В общем такая задача: есть реальное USB устройство, необходимо, чтобы его виртуальный аналог появился на другой машине в локальной сети. Я решил пойти таким способом: создаю драйвер фильтр снизу у этого USB устройства перехватываю все IRP запросы которые он посылает. И отправляю эти запросы по сети на необходимую машину.

Необходимо IRP запрос упаковать в какую-либо структуру без потери данных и передать по сети другому драйверу, котрый должен из этого пакета, сделать корректный IRP и отдать системе.

Вопрос: какую структуру лучше для этого использовать? Как упаковать IRP?

Я много читал, но так и не смог понять как это красиво сделать.

Заранее благодарен.
« Последнее редактирование: 20-03-2008 13:49 от zeo » Записан
Ochkarik
Модератор

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

« Ответ #1 : 20-03-2008 16:42 » 

забавная задачка)
IRP уж больно сильно к системе привязаны... придется все возможные Complite и Cancel-ы отслеживать... н едай бог по времени перепутать... про быстродействие молчу... траурно) оптимистично - думаю раз в 10.

что за девайс, сильно сложный? может проще на уровне Read/Write/DeviceIOControl-запросов эмулировать?
Записан

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

ru
Offline Offline
Пол: Мужской
Челябинск, Россия


« Ответ #2 : 21-03-2008 05:38 » 

что за девайс, сильно сложный? может проще на уровне Read/Write/DeviceIOControl-запросов эмулировать?
Девайс - это любое USB устройство, например флеш диск, принтер и т.п. Скорость не сильно важна.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 21-03-2008 06:14 » 

а не проще просто расшарить, если, по сути, это просто съёмный диск (в случае флешки или принтера,например) ?
Записан

zeo
Интересующийся

ru
Offline Offline
Пол: Мужской
Челябинск, Россия


« Ответ #4 : 21-03-2008 06:27 » 

а не проще просто расшарить, если, по сути, это просто съёмный диск (в случае флешки или принтера,например) ?
Задача состоит именно в физическом эмулировании.
Причем есть аналогичные программы, например, www.usb-over-network.com. Но надо написать свое.

В принципе с многим уже разобрался и фильтр-драйвер написал для любого USB устройства и виртуальную шину, на которой появляется виртуальное устройство. Но как передать корректно IRP никак не могу понять. И примеров никаких не видел.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines