Сейчас на форуме: hgdagon, asfa (+4 невидимых)

 eXeL@B —› Программирование —› Mirrror Driver
Посл.ответ Сообщение

Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 мая 2007 09:56
· Личное сообщение · #1

Здравствуйте вижу тут народ серьезный может ктонибудь тут сможет ответить.
Извиняюсь сразу если нетуда куда нужно попал.
Вообщем хочю сделать снятие скриншота и сжатие его по размеру, также как делает Radmin.
Вижу что Radmin юзает mirror display driver.
Начал разбираться с этим прибамбасом, в DDK нашол пример src\video\displays\mirror.
Там якобы как пишет M$ есть пример и сам драйвер.
Скомпилировал я драйвер и пример.
Драйвер установил нормально.
Вот так выглядит

С этим у меня проблем нету.
Но когда я запускаю пример я кроме инфы о драйвере ничего не вижу.

Меня интересует как всетаки его юзать? Тоесть как ловить его сообшения и т.д.




Ранг: 66.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 30 мая 2007 10:05 · Поправил: AdOLF_04
· Личное сообщение · #2

nbyte7 пишет:
Меня интересует как всетаки его юзать? Тоесть как ловить его сообшения и т.д.


Через IRQL-запросы. Например есть функция DeviceIoControl. А в драйвере установлен (?) обработчик IRP_MJ_DEVICE_CONTROL.



Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 мая 2007 10:17 · Поправил: nbyte7
· Личное сообщение · #3

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




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 30 мая 2007 20:02
· Личное сообщение · #4

nbyte7, драйвета работают в адресном пространстве ядра и с ними общаться можно через DeviceIOControl(), ReadFile() and WriteFile(). В ядре ты получишь IRP. Вкуривай DDK доки или статьи на wasm.ru



Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 мая 2007 21:28
· Личное сообщение · #5

Ну так DeviceIOControl я как понимаю только если в виртульный драйвер чтото передавать.
А мне нужно из драйвера в прогу Win32.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 30 мая 2007 21:39
· Личное сообщение · #6

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




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 30 мая 2007 23:36
· Личное сообщение · #7

nbyte7, любой драйвет может зарегистрировать device для получения IO Control calls. Любая прога (при наличии прав) может открыть этот псевдо-файл и послать IO control.

Если ты хочешь вернуть что-то в апликуху, то делай в проге делай overlapped read и потом жди. Драйвем может положить любой IRP в очередь и сделать Complete() когда захочет.



Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 31 мая 2007 15:41
· Личное сообщение · #8

Я вот чего непонимаю
я внёс
Код:

{ INDEX_DrvBitBlt, (PFN) DrvBitBlt },
и
HOOK_COPYBITS


,а почему не сробатыет тогда функция DrvCopyBits при BitBlt, я хоть в правильную сторону думаю она по идее должна сробатывать ?
Драйвер запускаю при помоши
src\video\displays\mirror\app
В dbview вижу тока
DrvEnableDriver:


 eXeL@B —› Программирование —› Mirrror Driver
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати