NO_MORE_IRP_STACK_LOCATIONS

Тема в разделе "WASM.WIN32", создана пользователем Devastator, 19 мар 2006.

  1. Devastator

    Devastator New Member

    Публикаций:
    0
    Регистрация:
    19 мар 2006
    Сообщения:
    1
    Адрес:
    Deep-Town
    Вобщем взял DVD диск, и когда компьютер пытается к нему обратиться, например открыть в проводнике, или обратиться из Windows Media Player, возникает BSOD-NO_MORE_IRP_STACK_LOCATIONS который говорит о том что:





    Драйвер высшего уровня пытался вызвать драйвер низшего уровня через IoCallDriver() интерфейс, но в запасе не было свободного места в области стека, поэтому драйвер низшего уровня не сможет достичь нужных параметров, так как для него вообще нет никаких параметров.

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





    NTSTATUS

    IoCallDriver(

    IN PDEVICE_OBJECT DeviceObject,

    IN OUT PIRP Irp

    );







    я подумал, что отследить из-за какого драйвера вызван BSOD можно, если перехватить IoCallDriver...



    вопрос: вообще реально ли это, нет ли способа это узнать попроще? и если действительно писать перехватчик, может ли он быть в user mode или ему обязателен kernel mode?



    З.Ы.: пробовал обратиться из Safe Mode- всё работает...
     
  2. FKMA

    FKMA New Member

    Публикаций:
    0
    Регистрация:
    10 май 2005
    Сообщения:
    13
    гадать можно долго.

    Какой-то драйвер неправильно формирует/передает IRP другому драйверу.

    Возьми сделай дамп (включи control panel->system->advanced->startup and recovery->kernel memopy dump и добейся bsod), и засунь его в windbg. там набери !analyze и смотри что напишет. В каком драйвере. А там по обстоятельствам.
     
  3. kelz

    kelz New Member

    Публикаций:
    0
    Регистрация:
    16 мар 2006
    Сообщения:
    13
    Адрес:
    Армавир


    Это написала винда? Или как? У любого BSOD есть код ошибки и четыре параметра. Пожалуйста в студию их. Телепаты в отпуске.