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

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

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

« Ответ #32 : 16-02-2017 09:31 » 

Для информации. На прошлой неделе закончил проект проактивки (файловый драйвер + драйвер нотификаторов процессов, потоков, модулей, реестра + юзермодный сервис). которая должна работать на линейке вин. от 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