Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AllocMem/EngAllocMem, передача данных из драйвера Win32-проге 
:(
    Опции темы
newinfo2005
  Дата 4.8.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.6.2008
Где: где-то тут

Репутация: нет
Всего: нет



Привет всем. 
мучаюсь передачей данных из драйвера (С++), Win32-приложению (Delphi), средствами АПИ.
Я видел как обмениваются текстом между собой два дельфийских приложения, через AllocMem, а вот сработает ли  это с драйвером? т.е. будет ли вин32-приложение иметь доступ к выделенной памяти драйвером? или EngAllocMem надо как-то использовать? в интернете по ней очень мало информации и система выделяет память из некого пула. Очень надеюсь на вашу помощь smile 

PM MAIL ICQ   Вверх
ne0n
Дата 5.8.2008, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



newinfo2005, сдаеться мне что драйвер писал не ты, раз задаешь такие вопросы. да и откуда AllocMem взяться в  ядре? вообщем нельзя так просто получить доступ к ядерной памяти. В для обмена инфой между r0 и r3 предусмотрены механизм IOCTL. можно посмотерть в книге Солдатова, там он неплохо все расписал. так же есть альтернативные варианты с пайпами(хз могу конечно и ошибаться, так на вскидку говорю) и SharedMemory.
PM MAIL ICQ   Вверх
newinfo2005
Дата 5.8.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.6.2008
Где: где-то тут

Репутация: нет
Всего: нет



ne0n
дык, все верно, пишу миррор драйвер, я взял основу из ддк и добавил код, но уже написанный мною , который ищет измененные области экрана в виде прямоугольников, нужно только передать эти прямоугольники в прикладную программу.
PM MAIL ICQ   Вверх
ne0n
Дата 6.8.2008, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



ну собственно я написал в какую сторону копать=)
PM MAIL ICQ   Вверх
newinfo2005
Дата 6.8.2008, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.6.2008
Где: где-то тут

Репутация: нет
Всего: нет



ne0n
спасибо, скачал учебник, сижу чешу репу, так как много там не описано, и ещё вопрос, я так понимаю нельзя отослать некое событие например WM_COPYDATA приложению?
PM MAIL ICQ   Вверх
ne0n
Дата 6.8.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



newinfo2005, Блин нет конечно, забтудь про WIN 32 API, когда речь идет о программирование в ядре. 
PM MAIL ICQ   Вверх
newinfo2005
Дата 6.8.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.6.2008
Где: где-то тут

Репутация: нет
Всего: нет



ne0n,  мда...становиться все сложна, ну ничо я не сдамся
PM MAIL ICQ   Вверх
Virtuals
Дата 7.8.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 4
Всего: 11



newinfo2005, имхо может просто подсмотреть как общение с драйверами реализованно в коде, да хоть у тех же МС$ вроде легче разобратся в 50строках кода чем читать талмут в 50глав smile 


PM MAIL ICQ   Вверх
newinfo2005
Дата 7.8.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.6.2008
Где: где-то тут

Репутация: нет
Всего: нет



Virtuals,  согласен, только неплохо бы узнать где у них это реализовано (в каком примере), мне не особо охота читать 50 глав и правдо)))
 smile 

Это сообщение отредактировал(а) newinfo2005 - 7.8.2008, 17:34
PM MAIL ICQ   Вверх
Virtuals
Дата 7.8.2008, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 4
Всего: 11



newinfo2005,  На Си пойдет? реализация CreateProcessWithLogon? хотя думаю нафиг не нужно так как там идет обмен через 
pipe
 smile 
PM MAIL ICQ   Вверх
Virtuals
Дата 7.8.2008, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 4
Всего: 11



и фообще обмен с сервисами и драйвверами идет через именованные каналы, хм может неправильно обозвал...
есть пример общения с PhysicalDrive, нуна? (чтение смарт из нжмд)
PM MAIL ICQ   Вверх
newinfo2005
Дата 7.8.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.6.2008
Где: где-то тут

Репутация: нет
Всего: нет



Virtuals,  давай лишним не будет, слушай, у тебя нету случаем там исходников, которые может организовывали не только обмен данными драйвера и приложения, ну и оповещения события об изменения данных? (или только оповещение)
PM MAIL ICQ   Вверх
Virtuals
Дата 8.8.2008, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 4
Всего: 11



newinfo2005
о нашел в закромах, и даже лучше чем ожидал

пример драйвера, и реализация интерфейса между драйвером и приложением smile  smile 


Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  wdm.rar 51,34 Kb
PM MAIL ICQ   Вверх
Virtuals
Дата 8.8.2008, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 4
Всего: 11



а так же думаю лишним не будет
ссылки, лично мне давшие неоценимую помощь в понимании вопроса smile 
http://www.citforum.ru/operating_systems/rtx/gl_2_4.shtml
http://www.codenet.ru/progr/visualc/wdmnumega/
http://www.codenet.ru/progr/asm/wdm_asm.php
http://www.inattack.ru/article/411.html
а насчет пайпов, в дркб смотри

Это сообщение отредактировал(а) Virtuals - 8.8.2008, 10:34
PM MAIL ICQ   Вверх
newinfo2005
  Дата 8.8.2008, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.6.2008
Где: где-то тут

Репутация: нет
Всего: нет



Virtuals
о спасибо ОГРОМНОЕ.
Покапался в исходниках, что ты мне дал, покапался в примерах ДДК, в принципе я связываюсь с драйвером по средством поверхности, чтобы получить изображение только, видать думаю, что я смогу разобраться в этом дальше, есть несколько мыслей, спасибо особено за ссылки, с удовольствием изучу  smile smile 
PM MAIL ICQ   Вверх
ama_kid
Дата 13.8.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 19
Всего: 95



Цитата(newinfo2005 @  6.8.2008,  10:11 Найти цитируемый пост)
я так понимаю нельзя отослать некое событие например WM_COPYDATA приложению
Как вараиант - можешь в драйвере создать notification event, доступный из user-mode, в приложении его отлавливать (можно завести поток для этого), и когда событие наступило - уже считать данные из драйвера посредством ReadFile\DeviceIoControl




--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
newinfo2005
Дата 13.8.2008, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.6.2008
Где: где-то тут

Репутация: нет
Всего: нет



ama_kid
вроде понятно как отсылать из драйвера сообщение, но меня вот заинтересовало как отловить именно это сообщение можно в вин32 - приложение?
можно на это ссылку?
я так понимаю как и все остальные? нужно делать глобальные хуки?
PM MAIL ICQ   Вверх
ama_kid
Дата 13.8.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 19
Всего: 95



Цитата(newinfo2005 @  13.8.2008,  21:01 Найти цитируемый пост)
меня вот заинтересовало как отловить именно это сообщение можно в вин32 - приложение?
Причем здесь хуки? Тебе ведь уже сказали, что это не сообщение, поэтому забудь этот термин применительно к режиму ядра, там рулят другие принципы... Я говорил про использование объекта-событие. "Отловить" его можно банальным WaitForSingleObject, лучше из потока, но не обязательно. Где-то на васм'е была статья на эту тему, можешь поискать, называлась что-то типа "Синхронизация - использование объектов", там хороший пример был, как раз из той оперы, что тебе надо...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
newinfo2005
  Дата 13.8.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.6.2008
Где: где-то тут

Репутация: нет
Всего: нет



ama_kid
о, спасиб, действительно то что нуно)) щас буду дописывать в драйвер, наконеца-то сделаю то что хочю)), как решу проблему, напишу, решил ил нет) Спасибо всем за помощь
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0996 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.