Проверить, загружен ли драйвер.

Тема в разделе "WASM.BEGINNERS", создана пользователем Igi, 31 окт 2007.

  1. Igi

    Igi New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2005
    Сообщения:
    35
    Здравствуйте. Помогите пожалуйста узнать загружен ли сейчас драйвер, я делаю так:
    Код (Text):
    1. function TDriver.isLoaded: boolean;
    2. ....
    3. result := false;
    4. h := CreateFile(
    5.                 PChar('\\.\'+fName),                // lpFileName
    6.                 GENERIC_READ + GENERIC_WRITE,       // dwDesiredAccess
    7.                 FILE_SHARE_READ + FILE_SHARE_WRITE, // dwShareMode
    8.                 nil,                                // lpSecurityAttributes
    9.                 OPEN_EXISTING,                      // dwCreationDistribution
    10.                 0,                                  // dwFlagsAndAttributes
    11.                 0                                   // hTemplateFile
    12.                 );
    13. if(h = INVALID_HANDLE_VALUE) then
    14.     exit;
    15. CloseHandle(h);
    16. result := true;
    Но здесь мне не нравится что в драйвере лишний раз вызывается IRP_MJ_CREATE и IRP_MJ_CLOSE, можно ли как-то по лругому проверить?
     
  2. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Если драйвер себя не скрывает, то можно через psapi.
     
  3. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    Не всегда поможет. Что за драйвер (в смысле что он делает?)
     
  4. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    А в каких случаях не поможет?
     
  5. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    Например если закрыть описатели файла то СreateFile нормально открывает его но драйвер сам может и не выгрузится и работать далее. И кстати надо ещо GetLastError вызывать иначе неясно почему eax==-1h
     
  6. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Либо бред, либо я ничего не понял :)
    Кто откуда закрывает и почему он должен выгружаться и не работать далее?
     
  7. Igi

    Igi New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2005
    Сообщения:
    35
    Спасибо! psapi - это как раз то что мне нужно!
     
  8. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    к nester7: ты просто неправильно меня понял. Не буду долго обяснять но привиду пример. На Nt дрова из папки Drivers лёгко открываются и модифицыруются, при етом они сидят в системе и спокойно работают.
     
  9. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    И какое это имеет отношение в вопросу ТС?
     
  10. ya

    ya New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    8
    По-моему вы попутали воздействие на файл драйвера на диске (ображение к устройству представляющему том) и CreateFile на устройство созданное драйвером?
     
  11. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    Eсли аффтар говорил о DEVICE (в функции) тода сорри недопонял вопрос, а если о файле - тогда я всё правильно написал.
     
  12. ya

    ya New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    8
    Mi256
    За то что ввел в заблуждение вполне разумных людей - в бан его.
     
  13. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    уа прочти #1 пост -
    Код (Text):
    1. PChar('\\.\'+fName),                // lpFileName
    ( \\.\ - касается не только девайсов но и других обектов) и иди в биореактор :)
     
  14. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Всё ясно...
     
  15. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    Да и вообще, если думаете что я не прав - 4-й урок FourF может он вас убедит...
     
  16. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Mi256
    Igi задал конктретный вопрос:
    То, что ты этой теме знаешь что-то ещё, нихрена не значит, что нужно это
    писать сюда.
     
  17. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    А куда же ещо? Он дал свой код, а я говорю, что он не в 100% помогает, и аргументировал, чтобы такие как ты не делали из меня глупого. ;)
     
  18. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Да ты сам великолепно справился :)