Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2013, 16:24   #1
dimitriy91
Пользователь
 
Регистрация: 25.10.2010
Сообщений: 42
По умолчанию подключеие дравера к приложению

Всем привет . Написал драйвер *.sys и установил его в систему. Как теперь подключить его к приложению, т.е. пользоваться его функциями ?
dimitriy91 вне форума Ответить с цитированием
Старый 13.03.2013, 08:36   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

У драйвера есть имя, открываете его файл как файл, далее управляете как файлом - read, write, ioctl...
waleri вне форума Ответить с цитированием
Старый 13.03.2013, 08:42   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...написать драйвер и не знать как его использовать, странно по меньшей мере. А может быть на самом деле и не написали, а воспользовались лишь конструктором драйверов?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.03.2013, 08:43   #4
dimitriy91
Пользователь
 
Регистрация: 25.10.2010
Сообщений: 42
По умолчанию

Пытаюсь.
Делаю так:
Код:
HANDLE hHandl;
	hHandl = CreateFile(L"\\\\.\\MyDriver", GENERIC_READ | GENERIC_WRITE,  FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);
    if (hHandl == INVALID_HANDLE_VALUE)
    {	
			return 0;
	}
	int a;
	std::cin >> a;
	CloseHandle(hHandl);
	return 0;
но хэндл не возвращается.

Скачал утилиту DriverView


Возвращает только 0xFFFFFFFF (((

Писал в блокноте , читая книгу Комиссаровой

raxp
Профессионал
Тролить всегда легче , чем отвечать на приземлённые вопросы простых смертных ))))
Изображения
Тип файла: jpg Снимок.JPG (265.0 Кб, 183 просмотров)

Последний раз редактировалось Stilet; 13.03.2013 в 09:22.
dimitriy91 вне форума Ответить с цитированием
Старый 30.03.2013, 23:16   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

во-первых - где сам драйвер хотя-бы с экспортом хэдера для того, чтобы на него взглянуть и проверить у себя, во-вторых - минус вам от меня за "тролля".
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 31.03.2013, 10:42   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Гдето в коде драйвера должно быть IoCreateSymbolicLink() - из программ драйвер открывают по имено, заданному в этой фунцкии.
waleri вне форума Ответить с цитированием
Старый 04.04.2013, 15:26   #7
dimitriy91
Пользователь
 
Регистрация: 25.10.2010
Сообщений: 42
По умолчанию

Снова я. Сейчас пытаюсь подключить WDM драйвер в приложении:

HANDLE hand;
hand = CreateFile(L"\\\\.\\MyDriver3", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);


if(hand == INVALID_HANDLE_VALUE)
cout<< "no open"<<endl;

else
cout<< "open"<<endl;

Но почему то не в какую не хочет подключаться , возвращает INVALID_HANDLE_VALUE
Другие драйвера в системе ,почему то тоже отказывается подключаться(несмотря на то , что обработчик IRP_MJ_CREATE присутствует, смотрел в утилитах ). Раньше когда работал с nt драйвером , некоторые драйвера подключались, да и сам драйвер подключался. Что может быть не так? Возможна ошибка в .inf ? Ещё один момент, когда удаляю драйвер из системы , то повторная установка драйвера с тем же именем приводит к синему экрану , того у меня уже 4 имени которые вызывают синий экран.

вот непосредственно сам драйвер:


Хочу включить и выключить LED на клавиатуре.
Вложения
Тип файла: txt MyDriver2.txt (5.7 Кб, 143 просмотров)
dimitriy91 вне форума Ответить с цитированием
Старый 04.04.2013, 15:48   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Прочитайте про функциюя DbgPrint() и воспользуйтес ею чтоб трасировать драйвер. Навскидку - сделайте имена разными.
waleri вне форума Ответить с цитированием
Старый 04.04.2013, 15:55   #9
dimitriy91
Пользователь
 
Регистрация: 25.10.2010
Сообщений: 42
По умолчанию

Спасибо .
dimitriy91 вне форума Ответить с цитированием
Старый 04.04.2013, 16:23   #10
dimitriy91
Пользователь
 
Регистрация: 25.10.2010
Сообщений: 42
По умолчанию

Сообщения не отлавливаются .
dimitriy91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по mfc приложению volk-z Visual C++ 2 10.01.2013 21:07
Подключение класса к приложению Kukkk Общие вопросы C/C++ 3 17.02.2010 00:51
Outpost и дравера ODBC KipZ Софт 6 23.08.2009 08:47
послать текст приложению FloopyMan Общие вопросы Delphi 10 17.03.2009 10:27
передать данные другому приложению vasya_pupkin Win Api 1 16.02.2007 20:17