ObReferenceObjectByHandle

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

  1. dmk

    dmk New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    20
    Адрес:
    Russia
    есть такая проблема:

    из user-mode отурывается файл:

    ::CreateFile(lpszFileName, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);



    далее полученный хэндл передается драйверу. в драйвере пытаюсь сделать ObReferenceObjectByHandle, и получаю BSOD.

    но не всегда :dntknw:

    т.е. если в драйвере сделать

    status = ObReferenceObjectByHandle(hFileToAttach,FILE_ALL_ACCESS,*IoFileObjectT ype,UserMode,(PVOID*)&fileObjectAttached,&handleInformation );

    то никакого BSOD не будет. status возвращается STATUS_ACCESS_DENIED и все нормально (т.е. ничего не работает как должно :))



    BSOD получается только при попытке установить права в SYNCHRONIZE или FILE_READ_DATA или FILE_GENERIC_READ



    подскажите плз. где собака порылась...
     
  2. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    ObReferenceObjectByHandle:

    Lower-level drivers should specify KernelMode.
     
  3. dmk

    dmk New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    20
    Адрес:
    Russia
    при замене UserMode на KernelMode драйвер валится при любой комбинации прав :dntknw:

    в BSOD ошибка IRQL_NOT_LESS_OR_EQUAL

    KeGetCurrentIrql возвращает 0



    все-таки где-то что-то не так, а вот что и где - не могу найти :dntknw:
     
  4. dmk

    dmk New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    20
    Адрес:
    Russia
    спасибо за помощь!



    проблема решена!



    ЗЫ. нужно спать больше, и читать внимательнее документацию :)
     
  5. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    Вот народ, нет бы решение вопроса скинуть. А все только "спасибо, вопрос снят" }=|