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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Не работает драйвер с функциями из ntoskrnl.exe в MirrorDriver  (Прочитано 43838 раз)
0 Пользователей и 1 Гость смотрят эту тему.
MirrorCoder
Участник

ru
Offline Offline

« Ответ #30 : 04-11-2008 14:01 » 

Ochkarik,
добавил в структуру PDEV переменную ULONG sizefile;
потом в DrvBitBlt определяю PPDEV ppdev = (PPDEV) psoSrc->dhpdev; ULONG size;
и вот из-за этой строчки   size = ppdev->sizefile; вылетает драйвер.
есть предположение что нужная структура мне хранитсья не в psoSrc, а а где-то в другом месте (например psoTrg )
или неправильно преобразовываю в начале
---
PS кстати... а что за смысл min() в memcpy(pDevInfo, &DevInfo, min(sizeof(DEVINFO), cjDevInfo))?
PS по-моему размер DevInfo опредляется минимум между структурой и ещё каким-то параметром, надобно спросить это у микрософта)))
Записан
MirrorCoder
Участник

ru
Offline Offline

« Ответ #31 : 04-11-2008 15:08 » 

заменил на psoDst. смог прочитать значение, установленное ранее мною и теперь не могу поменять значение данной переменной, какие книги, кроме DDK, есть чтобы почитать про устройство драйвера, различные структуры, функционирование?
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #32 : 04-11-2008 15:18 » 

а вы задумайтесь)))
почему в DrvBitBlt() два три! входных параметра с типом SURFOBJ?)))))))

PS что значит не могу? какое значение вы хотите поменять?
литература про драйвера - см первая прибитая тема.)
« Последнее редактирование: 04-11-2008 15:40 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
MirrorCoder
Участник

ru
Offline Offline

« Ответ #33 : 04-11-2008 15:32 » 

а вы задумайтесь)))
почему в DrvBitBlt() два три! входных параметра с типом SURFOBJ?)))))))
---
Пора мне учиться снова думать)))
--
ppdev->sizefile = ppdev->sizefile +5;
пытался сделать. облом.
« Последнее редактирование: 04-11-2008 15:40 от Ochkarik » Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #34 : 04-11-2008 15:36 » 

странно.... очень странно... не может такого быть!

PS отладчиком проверьте адрес при размещении структуры и адрес во время использования.... не верю что он копию снимает и отдает!
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
MirrorCoder
Участник

ru
Offline Offline

« Ответ #35 : 04-11-2008 20:17 » 

вывел в файл
и получил
указатель из enablepdev
равного 30 0a cb e1
и такой же из drvbitblt
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #36 : 04-11-2008 20:26 » 

теоретически можно так сделать, чтоб память доступа не была, но реально - оно операционке не нужно...
попробуйте еще раз, видно в другом метсте глюк... структура просто обязана быть доступна на запись)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
MirrorCoder
Участник

ru
Offline Offline

« Ответ #37 : 04-11-2008 20:43 » 

Ochkarik, не знай, какая-то все равно муть, не записывается
Записан
MirrorCoder
Участник

ru
Offline Offline

« Ответ #38 : 04-11-2008 20:45 » 

я прям последовательно писал и каждую строчку и тестировал
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #39 : 04-11-2008 21:07 » 

что вместо +5 происходит? прежнее значение?
как в контексте выглядит?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
MirrorCoder
Участник

ru
Offline Offline

« Ответ #40 : 05-11-2008 13:35 » 

Ochkarik,
ppdev->sizefile = ppdev->sizefile +5; - тут вылетает система полностью. читать я походу могу так как ноль в самом начале ей присвоил так и осталось, а изменить не могу, то есть не дает изменить, причем никаких BSOD не было, просто перезагрузка
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #41 : 05-11-2008 21:09 » 

сложно так сказать.... отладчиком по _asm шагам. лучше SoftIce если бы он поддерживался.
попробуй из других функций? ересь какая то...
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
MirrorCoder
Участник

ru
Offline Offline

« Ответ #42 : 08-11-2008 13:45 » 

Ochkarik,
откладчикам не пойму как пользоваться для драйверов...
в любом случае, там где я получаю структуру PDEV через surfobj походу не могу изменять её ((((
в книгах в статьях ничего не сказано об этом как и в мсдн
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #43 : 08-11-2008 17:45 » 

в примерах DDK\src\video\displays\3dlabs\ явно меняют и читают и пишут... правда это драйвер видеоадаптера.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines