Остановка драйвера Pssthru из DDK XP

Тема в разделе "WASM.WIN32", создана пользователем SteelRat, 28 май 2005.

  1. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    Откомпилировал драйвер passthru.sys из DDK XP, установил, работает, но трудность в выгрузке драйвера :dntknw: После удаления из сетевой настройки он остается в памяти машины. Из SCM удаляется, из реестра удаляется, но не выгружается. В АЙСе его видно "driver passthru" выдает адреса диспетчеров. Может кто сталкивался с такой проблемой ? Может чего-то M$ не досмотрел ? А выгружаю его KmdManager из KMDKit от Four-F. Просто регистрирую сервис, останавливаю и дерегистрирую :)
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    смотри есть несколько вариантов.. но чтоб иметь возможность выгружать драйвер надо чтоб в нем была процедура выгрузки DriverUnload ..

    тогда можно если ты стартуешь свою службу так :

    net start <service>

    то остановить можно

    net stop <service>

    Если же ты используешь свою программу которая загружает драйвер то тебе достаточно вызвать

    invoke ControlService, hService,SERVICE_CONTROL_STOP,addr _ss

    и после успешного вызова закрыть все описатели

    наподобие

    invoke DeleteService,hService

    invoke CloseServiceHandle,hService

    invoke CloseServiceHandle,hSCM
     
  3. YoungBastard

    YoungBastard New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2005
    Сообщения:
    231
    Адрес:
    Russia
    SteelRat







    эт скорее всего
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    YoungBastard

    да кстати по поводу semple oт M$ .. там постоянно ошибки и недочеты.. неверные конвертации структур... так что будь осторожен .. они видимо специально делали это чтоб все думали а не на обум компилили.
     
  5. YoungBastard

    YoungBastard New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2005
    Сообщения:
    231
    Адрес:
    Russia
    TermoSINteZ

    из всего что там unload есть только вот это:

    VOID

    PtUnloadProtocol(

    VOID

    )

    {

    NDIS_STATUS Status;



    if (ProtHandle != NULL)

    {

    NdisDeregisterProtocol(&Status, ProtHandle);

    ProtHandle = NULL;

    }



    DBGPRINT(("PtUnloadProtocol: done!\n"));

    }



    Так, что прийдется дописывать специально процедурку

    Халтурой попахивает или это они специально делают, что бы народ учился=)
     
  6. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    я когда писал NDIS то дописывал\переписывал более 50% функций.

    В с inf там вообще убожество он нерабочий и неправильный.. абсолютно (в ndisuio)
     
  7. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    Так дело и недоходит до PtUnloadProtocol :dntknw: Не вызывается...
     
  8. YoungBastard

    YoungBastard New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2005
    Сообщения:
    231
    Адрес:
    Russia
    SteelRat

    Проблема решается очень просто: необходимо взять и переписать passthru самому

    всего то делов :derisive:
     
  9. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    YoungBastard

    Ты был прав :) В M$ DDK даны примеры "от лукавого" приходится переделывать некоторые ф-ции... Если на одном адаптере этот драйвер работает... как-то, то с двумя - BSOD. Ну да ничего, голова на то и нужна :)))