DRIVER_IRQL_NOT_LESS_OR_EQUAL -> проблема обратиться к драйверу прогой

Тема в разделе "WASM.WIN32", создана пользователем serg128, 30 июл 2009.

  1. serg128

    serg128 New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    55
    Проблема такая: скомпилил из книжки драйвер, который потом успешно установил и запустил. Проверил запуск утилитой DriverMonitor - все в порядке.
    Пытаюсь обратиться к драйверу из своей программы - получаю BSOD DRIVER_IRQL_NOT_LESS_OR_EQUAL. Вылетает на месте
    Код (Text):
    1.     unsigned long ioctlCode=IOCTL_PRINT_DEBUG_MESS;
    2.     if( !DeviceIoControl(   hHandle,
    3.                     ioctlCode,
    4.                     NULL, 0,    // Input
    5.                     NULL, 0,    // Output
    6.                     &BytesReturned,
    7.                     NULL )  )
    8.     {
    9.         printf( "Error in IOCTL_PRINT_DEBUG_MESS!" );
    10.         return(-1);
    11.     }
    В чем проблема?
    Исходники прилагаю:
     
  2. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Интересно ОС виста?
     
  3. serg128

    serg128 New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    55
    ОС - XP SP3 rus.
    А какой хороший отладчик именно для драйверов, и как его юзать, если в самый "интересный" момент система вылетает?
     
  4. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    а анализ что показал?
     
  5. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
     
  6. serg128

    serg128 New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    55
    >o14189
    Извиняюсь за глупый вопрос, но как пользоваться этим?
    Код (Text):
    1. @set minidump=%1
    2. @call kd.exe -z %minidump%
    3.  
    4. !analyze -v
     
  7. Forever

    Forever Виталий

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    244
    Очень просто. При крэше как правило генерится дамп. Открывай дамп в отладчике WinDBG или KD и смотришь, почему произошел сбой. Команда !analyze -v практически всегда является первой командой при таком анализе, так как она позволяет получить общее представление о причине ошибки, а если ошибка простай то тебе еще и исходники твои откроют и покажут в какой строчке произошел сбой.
     
  8. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    Код (Text):
    1. @set minidump=%1
    2. @call kd.exe -z %minidump%
    это записать в батфайл к примеру analyze.bat
    перетащить на него нужный минидамп (обычно в %SystemRoot%\Minidump)
    потом ввести команду !analyze -v
     
  9. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    если символы есть то в результате по стеку вызовов возможно сразу получится определить место сбоя
    если символов нет то придется иду брать
     
  10. serg128

    serg128 New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    55
    SoftIce не запускается :dntknw:
    А OllyDbg можно для отладки использовать?
     
  11. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    Syser поставь
     
  12. serg128

    serg128 New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    55
    Syser поставил, запустил. По всему видно, отладчик хороший, но... при загрузке модуля (любого рабочего) систему вешает намертво! Как быть?
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Так он же ядерный, на виртуальной машине отлаживайте.
     
  14. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Clerk
    Alcohol пришлось переустанавливать после него, предварительно удалив syser
     
  15. serg128

    serg128 New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    55
    Для простоты открыл им маленькую програмку (*.ехе, user mode) открывает, но все вешает намертво. При чем тут int 3 и виртуальная машина? Для начала добиться бы его работоспособности... Версия 1.99 последний релиз.
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    serg128
    А курсор движется в отладчике или клавиатура работает ?
     
  17. serg128

    serg128 New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    55
    Ничего неработает. Пробовал на двух машинах: с четырехядерным процом и с обычным одноядерным. Результат одинаков. ОС - ХР SP3 proff rus.
     
  18. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    serg128
    Видеокарта > GeForce 8й серии ?
     
  19. serg128

    serg128 New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    55
    Ну запустить его только кликом получается. Ctrl+F12 он закрывается. На F5 не реагирует.
     
  20. serg128

    serg128 New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    55
    Видеокарта GF GTS 250.