Драйвер vxd переделать под Win2000

Тема в разделе "WASM.BEGINNERS", создана пользователем garif, 21 июн 2008.

  1. garif

    garif New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    6
    Есть исходники (на асме) драйвера (vxd) инерфейсной платы под ISA слот. Работает под Win98.
    Подскажите, пожалуйста, как можно переделать этот драйвер под Win2000
     
  2. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Получается обыкновенный legacy дров. Инициализируется в реалмоде, но при этом ничего кроме выдачи сообщения не делает. Исходник есть. Берем шаблон дрова и запихиваем в него код что есть. Проблема будет только с IOCTL-кодами. В VxD побарабану какие они, а в nt код составной. Кроме того, придется перекомпилить приложение которое использует этот модем. Либо запатчить его. Если что стучись в личку. Мне неясна куча деталей.
     
  3. garif

    garif New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    6
    Что именно?
     
  4. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    garif
    Что за приложение использует этот драйвер? есть ли его исходники? и как вообще планируется использовать эту дрову под 2к? Ехек тоже патчить придется?
     
  5. garif

    garif New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    6
    Данный драйвер используется самописная программой (написана на Delphi) для получения и отправки данных через интерфейсную плату на модем для выделенных линий. Драйвер под 2к планирую использовать для тех же целей.
    Выкладываю исподники, где производится работа с драйвером интерфейсной платы:
     
  6. bugaga

    bugaga New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2007
    Сообщения:
    361
    То что от платы прерывания не поступает - а работа идет в основном с портами весьма упрощает задачу, поскольку весь функционал заключен в
    Код (Text):
    1.  
    2.     cmp dword ptr [ESI.dwIOControlCode],11
    3.     je  OutMod
    4.     cmp dword ptr [ESI.dwIOControlCode],12
    5.     je  InMod
    6.     cmp dword ptr [ESI.dwIOControlCode],13
    7.     je  InStrMod
    8.     cmp dword ptr [ESI.dwIOControlCode],14
    9.     je  OutStrMod
    10.     cmp dword ptr [ESI.dwIOControlCode],15
    11.     je  StatMod
    12.     cmp dword ptr [ESI.dwIOControlCode],16
    На начальной стадии переделки дрова - можно вообще обойтись без драйвера, юзая порты напрямую.

    Cуть портирования сводиться в месте, ну примерном
    Код (Text):
    1. function ModemIODeviceControl (DrvObj:PDRIVER_OBJECT;Irp:PIRP):integer; stdcall;
    2. begin
    3. //
    4. //
    5. //
    6.       IoCompleteRequest (0,Irp);
    7.       Result := STATUS_SUCCESS;
    8. end;
     
  7. garif

    garif New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    6
    Я надеялся на возможность быстрой перекомпиляции (или что-то в этом роде), так как к написанию драйвера никакого отношения не имею и плохо разбираюсь в этом вопросе.
     
  8. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    garif
    перекомпиляции тут быть не может
     
  9. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    garif
    Прилепи сюда пожалуста оригинальный VxD, который работает реально. Чего то я не верю этому сорцу.
     
  10. garif

    garif New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    6
    Это все что есть:
     
  11. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    garif
    Держи. Что то получилось. Прверить небыло возможности. Коды IOCTL в юзермодной части придется поменять. Детали в сорцах
    аттачь хз как сделать поэтому тут
    http://rapidshare.com/files/124925286/modem.rar.html
     
  12. garif

    garif New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    6
    k3internal огромное спасибо тебе!
    Теперь буду разбираться, как с этим работать :) .

    Пытаюсь запустить данный драйвер (modem.sys) как службу. Должен ли он запускаться при отсутствии интерфусной платы (так же при отсутствие ISA слота)?
    Пока запустить как службу не получается
     
  13. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Ага, ругается, что такая служба уже есть. В драйвере есть касяки. К примеру надо доработать чтобы *pdInfo получал значение равное или больше размеру выходного буфера, а то в моём случае он всегда будет содержать 1 байт. Кроме того нужно изменить имя символьной ссылки.
    Позже доработаю.