путь к файлу драйвера

Тема в разделе "WASM.WIN32", создана пользователем infern0, 30 дек 2004.

  1. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    Вопрос - есть драйвер под NT-системой. Он лежит в каталоге windows\system32\drivers\. Рядом с ним (в том-же каталоге) лежат пару файлов с данными. Как из драйвера можно получить полный путь с файлу с данными ? Я не знаю ни системного диска ни названия системного каталога (может он и не windows). Или единственный выход - передавать путь через реестр, создавая этот ключ при установке драйвера ?
     
  2. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Если файло именно в системном каталоге лежит, тогда просто. Есть две символные ссылки:

    \SystemRoot

    \KnownDlls\KnownDllPath



    Есть ключ в реестре:

    HKLM\SYSTEM\CurrentControlSet\Control\Windows\SystemDirectory



    Если файло в любом каталоге, то можно прочитать в DriverEntry свой ключ:

    HKLM\SYSTEM\CurrentControlSet\Services\xxx\ImagePath



    Или так:

    pDriverObject->DriverSection->FullDllName.Buffer



    Наверное ещё что-то можно придумать.
     
  3. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    Есть переменная %SystemRoot%\System32\
     
  4. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia


    и как ее получить из ядра ?



    а куда она указывает ? Т.е. открывая файл вида \SystemRoot\qwe.qwe откроет x:\windows\system32\qwe.qwe ?
     
  5. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Символьная ссылка \SystemRoot кажет на ещё одну символьную ссылку. У меня на такую \Device\Harddisk0\Partition1\WINNT, а та кажет на девайс \Device\Harddisk0\DR0... Мда, это те ничего не даст.



    А вот символьная ссылка KnownDlls\KnownDllPath содержит путь (опять же у меня) C:\WINNT\system32. Вот через неё можно открыть файло.



    ЗЫ: Слей с этого сайта WinObjEx
     
  6. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia


    ок, попробую.



    уже слил, разбираюсь. Спасибо.
     
  7. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    %SystemRoot%\System32\ это уже путь к системному каталогу... Н-р если Винда сидит в каталоге c:\DOS то при обращении к системному каталогу %SystemRoot%\System32\ Винда сама подставит вместо "%SystemRoot%" "c:\DOS" и добавит "\System32\" Попробуй подставить %SystemRoot% в эксплорере или в командной строке набери "start %SystemRoot%\System32\" :)
     
  8. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    Поправка :dntknw: это же из режима пользователя...
     
  9. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    вот и я про это - мне из ядра надо. Но похоже knowdllspath самое то что надо. Спасибо и с новым годом всех.
     
  10. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    Four-F



    pDriverObject->DriverSection->FullDllName.Buffer



    помоему правильнее уже некуда !!!!! :)