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

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

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

« Ответ #30 : 12-10-2016 17:08 » 

1. при чем тут были глобальные переменные?)
2. "тот же бсод" - это относилось к какой части этой сотни строчек?
3. почему вы читаете oldrel = (PDEVICE_RELATIONS) Irp->IoStatus.Information; когда Irp->IoStatus вроде всегда был выходным параметром? что вы пытаетесь оттуда прочесть если вы туда еще не писали?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Ллирик
Помогающий

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

« Ответ #31 : 13-10-2016 14:55 » 

1. при чем тут были глобальные переменные?)
Так вот и я не понимаю почему в крашдампе были указаны адреса глобальных переменных С ума сойти... А черт его знает...
Цитата
2. "тот же бсод" - это относилось к какой части этой сотни строчек?
Переделал вот так
Код: (C)
        if (oldrel)
                size = sizeof(DEVICE_RELATIONS) + (oldrel->Count) * sizeof(PDEVICE_OBJECT);
        else
                size = sizeof(DEVICE_RELATIONS);

                newrel = (PDEVICE_RELATIONS) ExAllocatePool(PagedPool, size);
                if (newrel) {
                   if (oldrel) {                                        // copy & extend
                        RtlCopyMemory(newrel, oldrel, size - sizeof(PDEVICE_OBJECT));
                        ExFreePool(oldrel);
                        }
                   else
                        newrel->Count = 0;

                newrel->Objects[newrel->Count] = BusDeviceObject;
                newrel->Count++;
                ObReferenceObject(BusDeviceObject);
                Irp->IoStatus.Information = (ULONG_PTR) newrel;
                }                                               // build new list
        else
                status = STATUS_INSUFFICIENT_RESOURCES;

        Irp->IoStatus.Status = status;
Всё-равно бсодит
Цитата
3. почему вы читаете oldrel = (PDEVICE_RELATIONS) Irp->IoStatus.Information; когда Irp->IoStatus вроде всегда был выходным параметром? что вы пытаетесь оттуда прочесть если вы туда еще не писали?
На случай, если вышестоящее устройство тоже создаст свой PDO
Записан
zubr
Гость
« Ответ #32 : 16-02-2017 09:31 » new

Для информации. На прошлой неделе закончил проект проактивки (файловый драйвер + драйвер нотификаторов процессов, потоков, модулей, реестра + юзермодный сервис). которая должна работать на линейке вин. от XP до 10 x86-x64. Собирал драйвера в старой-доброй WinDDK7 из под VS2008 с тестовой подписью. Последние тесты на Win10 x64 показали положительный результат. Был единственный трабл именно на данной системе - не хотел работать инсталлятор, устанавливающий всю эту хрень (драйвера и сервис), пока не переименовал его так, чтобы в названии никак не упоминалось аля Install или setup.
Записан
Ochkarik
Модератор

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

« Ответ #33 : 16-02-2017 12:09 » 

неожиданно!)
Записан

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

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines