KERNEL_MODE_EXCEPTION_NOT_HANDLED

Тема в разделе "WASM.NT.KERNEL", создана пользователем GastiX, 11 ноя 2009.

  1. GastiX

    GastiX New Member

    Публикаций:
    0
    Регистрация:
    10 окт 2008
    Сообщения:
    17
    После IoGetDeviceObjectPointer - синий экран KERNEL_MODE_EXCEPTION_NOT_HANDLED (ERROR_PATH_NOT_FOUND).
    Глянул в NTOSKRNL место, где вызывается. Это в DebugService int 3. на сколько я понимаю DebugService используется в DbgPrint и т.д.
    Десятки раз использовал IoGetDeviceObjectPointer раньше - такого не было.
    В этом случае ObjectName проверенный. Получен ZwQuerySymbolicLinkObject из символической ссылки так что с ним вопросов быть не может.
    Помогите разобраться.
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Во-первых, давай сюда анализ дампа (команда !analyze -v в WinDbg). Во-вторых, что есть ERROR_PATH_NOT_FOUND, какое это имеет отношение к падению? Ну и в конце концов показывай код.
     
  3. GastiX

    GastiX New Member

    Публикаций:
    0
    Регистрация:
    10 окт 2008
    Сообщения:
    17
    1. Я предпочитаю пользоваться DriverWorkbench, а не WinDbg.
    2. ERROR_PATH_NOT_FOUND это как раз исключение.
    3. Код оказался правильным. Ошибка была не в этом драйвере, а в том, к которому я пытался потом цепляться.
    IoGetDeviceObjectPointer, как всем известно, вызывает ZwOpenFile. В "чужом" драйвере вызывается диспетчеризируемая функция обработки IRP_MJ_CREATE. Вот там то и были ошибки.

    Всем спасибо. Тему можно закрывать.

    P.S. 2 x64. А можете привести пример, где бы использовался вызов IoGetDeviceObjectPointer и был бы тот же BSOD, что и у меня? Это к Вашему последнему пункту вопроса. Я думаю вряд ли, но может я ошибаюсь.
     
  4. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Исключения обычно записываются кодами NTSTATUS, а не Win32, тем более что не существует точного маппинга значений NTSTATUS на Win32-коды.

    Как мне это нравится, когда человек приходит, не даёт никакой информации, просит помочь, а в итоге разбирается сам, не понимая того, чтобы в этом случае никто, кроме него, разобраться и не смог бы.

    Ошибки бывают косвенные (наведённые).

    Ну ты вроде умный у нас, давай, думай ;)
     
  5. GastiX

    GastiX New Member

    Публикаций:
    0
    Регистрация:
    10 окт 2008
    Сообщения:
    17
    2 x64
    Я между прочим к Вам очень даже хорошо отношусь :) Читал Ваши заметки на Вашем болге.

    Ну разобрался. Что ж я теперь виноват, что разобрался сам? Мне анализ дампа все-таки выкладывать? Я так не вижу в этом смысла, т.к "ошибка" то была не у меня, а в другом драйвере. (Ошибка в кавычках, т.к как язык не поворачивается то что там так назвать).
    Теперь буду знать, что надо думать за себя (за свой код) и за того парня. Хотя сколько уже раз наступал на подобные грабли. Видимо для программирования нужно более гибкое мышление чем у меня.
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    В какой-то книге было что-то типа "никогда не надо предполагать, что чужая программа работает правильно и все что можно проверяйте сами".