Форум программистов CodeGuru
23 Июль 2018, 10:06:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Виртуальный COM порт  (Прочитано 33148 раз)
0 Пользователей и 1 Гость смотрят эту тему.
anykey
Новичок
*
Офлайн Офлайн

Сообщений: 5


Просмотр профиля
« : 17 Май 2006, 12:12:28 »

Народ, кто-нибудь может мне помочь или нет!!!! Хотябы подскажите в каком направлении двигатся!!! Очень срочняк нуно разобратся в написании виртуального драйвера для ком порта!!! Есть ли необходимость пользоватся DDK??? Возможно ли создать виртуальный порт с помощью WIN API ??? Как зделать так чтобы можно было с помощью одного драйвера создавать множество портов??? Как загружать виртуальные порты в месте с приложением??? Как сделать чтобы порт общался с сеткой (TCP и UDP)???  
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 17 Май 2006, 21:32:04 »

Цитировать
Очень срочняк нуно разобратся в написании виртуального драйвера для ком порта!!!

Эээ... "виртуальный драйвер" - это как ?
В смысле, надо драйвер, который бы эмулировал COM-порт ?
Цитировать
Есть ли необходимость пользоватся DDK?

Если писать драйвер - то как же без него ?
Цитировать
Как сделать чтобы порт общался с сеткой (TCP и UDP)???

Наверно, никак. Порт никак ни с кем не общается.
Вывод данных в порт - этот когда ты на ассемблере говоришь out, а процессор на один из своих выходов кидает сигнал, что в порт выводит, на шину данных кидает выводимое число, а на шину адреса - номер порта (так, вроде).
Конкретно для COM-порта на материнской плате стоит контроллер (RS232), который эти чиселки забирает и в последовательной форме на внешние разъемы засылает.
Его (контроллер) можно настроить на определенную скорость работы путем вывода в порт определенных последовательностей.
В винде напрямую к портам обращаться нельзя, но есть стандартные устройства с именами COM1..COM9, в которые можно выводить данные, открыв их через CreateFile (тут на форуме про это были уже темы).

Имхо, для начала неплохо бы сформулировать поконкретнее задачу.
Тогда можно будет посоветовать что то конкретное.
Как минимум - для чего нужен этот виртуальный порт и, следовательно, какой перечень задач он должен быть способным выполнять.
Записан

anykey
Новичок
*
Офлайн Офлайн

Сообщений: 5


Просмотр профиля
« Ответ #2 : 18 Май 2006, 09:59:21 »

Вообщем этот драйвер нужен чтобы связать программное обеспечение и оборудование работающее через Ethernet. И что еще самое важное, оборудования много и для каждого из них нужно создать виртуальный порт. ПО может работать только с COM портом. Нужны доки или исходники!!!! HELP
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #3 : 19 Май 2006, 02:35:33 »

Что то мне подсказывает, что одним драйвером не обойтись (не знаю, насколько возможно из драйвера работать с сеткой). Наверно нужен драйвер + приложение (лучше вообще сервис), работающее с драйвером и сеткой. То есть, этот сервис будет соединяться с чем там надо через сетку и ретранслировать туда данные от драйвера, ну и то что получит через сетку будет отдавать драйверу. Ну и с драйвером будет также прикладное по работать.
Цитировать
Нужны доки или исходники!!!!

Вот, советую скачать: книга Windows 2000 device driver book (Art Baker Jerry Loza) - про драйвера как раз.
Еще есть help от DDK - по идее, самая нормативная информация по написанию драйверов.

Я драйверами занимался не долго - всего полгода где то (на своей первой работе, еще будучи студентом). Исходя из этого опыта могу только заметить следующее:
1. В DDK точно есть пример простого Kernel-Mode драйвера (вообще в понимании сути драйверописания поможет и его можно попробовать переделать в драйвер виртуального порта).
2. Очень может быть (точно не помню), в DDK есть и пример драйвера COM-порта.
3. Писать дрова, используя чистый DDK не особо приятно.
4. Для написания драйверов очень хорошо использовать NuMega Driver Studio (я пробовал работать с одной из ранних версий). Она полностью интегрируется с Visual Studio, добавляет в нее несколько визардов создания заготовок драйверов, и.т.д.
В нее входит объектно-ориентированная библиотека классов для создания драйверов.
Там же, в примерах NuMega Driver Studio был вообще готовый драйвер COM-порта, вроде.
Единственный минус - эта студия сильно не бесплатная, а DDK и WinDbg - бесплатные.

З.Ы. кстати, для отладки драйверов можно использовать SoftIce (тогода можно на одной машине отлаживать), либо связку WinDbg + виртуальная машина (например, VMware) - получится как бы сетевая отладка, но все равно на одной машине.
Записан

anykey
Новичок
*
Офлайн Офлайн

Сообщений: 5


Просмотр профиля
« Ответ #4 : 22 Май 2006, 09:53:12 »

Я уже в панике, не знаю с чего начать!!! Может существует какая-нибудь полезная литература на русском!!! Англ. за..бался переводить!!! Наверно скоро в переводчики пойду....
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #5 : 22 Май 2006, 22:25:43 »

Вообще, на русском слышал только про две книжки:
"Программирование драйверов и систем безопасности." и
"Программирование драйверов Windows."
Про вторую - ничего не знаю.
Про первую - говорят, что это типа букваря перед чтением документации DDK.
Должны быть в книжных магазинах. Можно посмотреть на ozon.ru, books.ru, bolero.ru.

Ага, вот нашел обе на озоне:
Программирование драйверов и систем безопасности. Учебное пособие. (Светлана Сорокина, Андрей Тихонов, Андрей Щербаков).
Программирование драйверов Windows. (В. П. Солдатов).

Но не знаю, насколько это поможет.
Я, вообще, в свое время потратил много времени на чтение документации из DDK.
Люди, которые занимались драйверами постоянно, говорили, что вникать начнешь после полугода такого чтения + экспериментов. Также много недокументированных граблей в этом деле, с которыми можно круто зависнуть, и иначе как ценой долгих ночей, проведенных в дебаггере, с них не слезешь.

Вообще, на русском мало подобной литературы.
Записан

anykey
Новичок
*
Офлайн Офлайн

Сообщений: 5


Просмотр профиля
« Ответ #6 : 24 Май 2006, 09:15:51 »

А какой имено драйвер нужен WDM или NT ???
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #7 : 24 Май 2006, 15:03:59 »

Гм... наверно, wdm.
Надо просто посмотреть в DDK примеры - там, кажется, было такое.
Записан

anykey
Новичок
*
Офлайн Офлайн

Сообщений: 5


Просмотр профиля
« Ответ #8 : 25 Май 2006, 09:26:03 »

А как связать сам драйвер и сеть??? Я читал что можно и на уровне ядра имеется доступ к сетке, но там всё геморно. Как можно драйвер привязать к прилажению которое будит отслеживать сетевой трафик???
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #9 : 26 Май 2006, 01:28:10 »

Цитировать
Как можно драйвер привязать к прилажению которое будит отслеживать сетевой трафик???

CreateFile + DeviceIoControl - это, обычный метод.
Ну, там еще какие то функции есть. Драйвер, вроде, уведомления как то посылать может.

Можно просто посмотреть примеры по DeviceIoControl
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!