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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: winsock2.h + WDM = ???  (Прочитано 13997 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stran_nik
Гость
« : 17-01-2004 15:38 » 

Подключаю winsock2.h к своему wdm драйверу и получаю ошибку компиляции

error C2146: syntax error : missing ';' before identifier 'CRITICAL_SECTION'

и ругается он на файл \ntddk\inc\winbase.h

Попробовал взять новее ДДК все то же. Никак немогу подцепить эту библиотеку к WDM  драйверу. В чем может быть трабла?
Или может кто подскажет как без нее из драйвера с сокетами работать?
Записан
maaaaaad
Гость
« Ответ #1 : 17-01-2004 18:10 » 

в ддк нет winsock2.h он берется из инклудов vc или псдк, он предназначем для юзер мода. Хотябы сам взглянул - там экспорты для винсок лайбы. Вот интересно что же тебе от туда понадобилось?
Записан
Anonymous
Гость
« Ответ #2 : 17-01-2004 18:51 » 

Цитата: maaaaaad
в ддк нет winsock2.h он берется из инклудов vc или псдк, он предназначем для юзер мода.


winsock2.h берется из ДДК. У меня ДДК для w2k и есть еще 3663. В обоих есть этот файл.

Цитата: maaaaaad

Хотябы сам взглянул - там экспорты для винсок лайбы. Вот интересно что же тебе от туда понадобилось?


Мне нужно, чтобы в драйвере можно было бы, при помощи сокетов, связаться с другой машиной в сети. Драйвер эмулирует порт, который в свою очередь, хватает данные и пересылает сетевому устройству.
Записан
Stran_nik
Гость
« Ответ #3 : 17-01-2004 19:06 » 

Цитата: maaaaaad
он предназначем для юзер мода. Хотябы сам взглянул - там экспорты для винсок лайбы.


Либо я что-то не так понял, возможно ты имел в виду, что интерфейс сокетов реализован в Ws2_32.dll а это библиотека user mode и никак нельзя задействовать ее функции в kernel mode?

Тогда все же остается открытым вопрос. Как из драйвера порта находящемся в режиме ядра связатся по сети с Linux-овой машиной?
Записан
maaaaaad
Гость
« Ответ #4 : 18-01-2004 08:23 » 

Цитата

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


 делай поток на юзер и перебрасывай все туда. проще не получится, если у тебя потоковые сокеты. Если дейтаграмные можно отправлять потипу пакетного драйвера.
Записан
maaaaaad
Гость
« Ответ #5 : 18-01-2004 08:28 » 

Хотяб я бы взялся и за реализацию потокового сокета =)
криво-косо (упрощенная модель, когда, например, не создается очереди ожидающих удаления пакетов) это можно сделать.
Записан
Stran_nik
Гость
« Ответ #6 : 18-01-2004 10:35 » 

Сокеты у меня потоковые. Слишком все сложно и непрозрачно получается. С потоком в юзер моде и драйвером в кернеле.  
Может возможно тогда, создать драйвер порта работающего в режиме user mode и чтобы он мог использовать библиотеку сокетов?
Записан
maaaaaad
Гость
« Ответ #7 : 18-01-2004 14:54 » 

блин а можно ведь реализовать драйвер над tcp/ip стеком. там можно будет пользоваться потокомыми сокетами. Я к сожалению этим пока не занимался и ничего не могу посоветовать (называются потипу passthrough или TDI или еще как-то). Меня вот что то на пакетный фильтр пробило вот и советую его всем =) Я просто сегодня не выспался =)
Записан
maaaaaad
Гость
« Ответ #8 : 18-01-2004 15:11 » 

http://www.pcausa.com/tdisamp/default.htm

TDI тебе мужен.

денег хватит купить пример?=)
Записан
maaaaaad
Гость
« Ответ #9 : 18-01-2004 15:24 » 

Ну в общем скелет тди Грома ждемс=)
Хех, погдядел я в ддк TdiOpenAddress выдается из VxDDK милениума лол
мне уже любопытно =) Ктати тут не так уж и много =) в т.ч. и про архитектуру=)

воть кстати и коннект TdiConnect и акцепт TdiAccept и листен.....еще тут что то проиничиализировать только нада....

в общем ждемс, я тоже заинтересовался, только времени пока нет....
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #10 : 19-01-2004 06:25 » 

maaaaaad, предлагает вполне реальную вещь- напиши сервис и драйвер, при старте системы запускается сервис(вход юзера для этого не нужен) и загружает драйвер или говорит уже загруженному драйверу- я запустился, далее сервис и драйвер общаются между собой. Все будет стабильно работать. Нет в ядре реализации интерфейса сокетов.
Записан
maaaaaad
Гость
« Ответ #11 : 19-01-2004 07:31 » 

SlavaI, я чет не втыкаю причем тут сервис
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #12 : 19-01-2004 07:39 » 

Цитата

SlavaI, я чет не втыкаю причем тут сервис


 вот при чем- твои же слова
Цитата

делай поток на юзер и перебрасывай все туда


А как поток ты будешь делать? По мне так самое удобное- сервис сделать, он всегда будет в системе вместе с драйвером.
Записан
maaaaaad
Гость
« Ответ #13 : 19-01-2004 10:29 » 

Нее, я уже отказался от своих слов - правильно с TDI сделать. Никакой кернел не должен иметь в себе стек tcp/ip как обязательную часть. Это все верно. Но он должен работать и должна быть, черт побери, возможность с ним работать из кернел моде!
Записан
maaaaaad
Гость
« Ответ #14 : 19-01-2004 10:35 » 

Странник, если время есть погоди не делай неправильных решений. Я тоже проблемой займусь, может посоветую что то конкретное уже. Меня этот вопрос тоже сильно интересует.
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #15 : 19-01-2004 10:49 » 

Цитата

Нее, я уже отказался от своих слов - правильно с TDI сделать.


"Ну, какой же ты все таки вредный."(Карлосон)

Цитата

Но он должен работать и должна быть, черт побери, возможность с ним работать из кернел моде!


 Тут скорее TDI клиент нужен, по моему ты клиента все таки имел в виду.
Просто не сделали интерфейс для сокетов в ядре- и все. Можно юзать afd.sys- это по-моему клиент TDI через который сокеты работают.
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #16 : 19-01-2004 10:52 » 

Кстати- присоединюсь к вашей компании- меня тоже этот вопрос стал интересовать. Да и по работе этим придется заняться.
Записан
Stran_nik
Гость
« Ответ #17 : 21-01-2004 11:53 » 

Цитата: maaaaaad

TDI тебе мужен.


Значит переписать по сути библиотеку сокетов? Вещь конечно интересная, но ...

Цитата: maaaaaad

денег хватит купить пример?=)


Издевается... Ага
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines