Есть исходники (на асме) драйвера (vxd) инерфейсной платы под ISA слот. Работает под Win98. Подскажите, пожалуйста, как можно переделать этот драйвер под Win2000
Получается обыкновенный legacy дров. Инициализируется в реалмоде, но при этом ничего кроме выдачи сообщения не делает. Исходник есть. Берем шаблон дрова и запихиваем в него код что есть. Проблема будет только с IOCTL-кодами. В VxD побарабану какие они, а в nt код составной. Кроме того, придется перекомпилить приложение которое использует этот модем. Либо запатчить его. Если что стучись в личку. Мне неясна куча деталей.
garif Что за приложение использует этот драйвер? есть ли его исходники? и как вообще планируется использовать эту дрову под 2к? Ехек тоже патчить придется?
Данный драйвер используется самописная программой (написана на Delphi) для получения и отправки данных через интерфейсную плату на модем для выделенных линий. Драйвер под 2к планирую использовать для тех же целей. Выкладываю исподники, где производится работа с драйвером интерфейсной платы:
То что от платы прерывания не поступает - а работа идет в основном с портами весьма упрощает задачу, поскольку весь функционал заключен в Код (Text): cmp dword ptr [ESI.dwIOControlCode],11 je OutMod cmp dword ptr [ESI.dwIOControlCode],12 je InMod cmp dword ptr [ESI.dwIOControlCode],13 je InStrMod cmp dword ptr [ESI.dwIOControlCode],14 je OutStrMod cmp dword ptr [ESI.dwIOControlCode],15 je StatMod cmp dword ptr [ESI.dwIOControlCode],16 На начальной стадии переделки дрова - можно вообще обойтись без драйвера, юзая порты напрямую. Cуть портирования сводиться в месте, ну примерном Код (Text): function ModemIODeviceControl (DrvObj:PDRIVER_OBJECT;Irp:PIRP):integer; stdcall; begin // // // IoCompleteRequest (0,Irp); Result := STATUS_SUCCESS; end;
Я надеялся на возможность быстрой перекомпиляции (или что-то в этом роде), так как к написанию драйвера никакого отношения не имею и плохо разбираюсь в этом вопросе.
garif Прилепи сюда пожалуста оригинальный VxD, который работает реально. Чего то я не верю этому сорцу.
garif Держи. Что то получилось. Прверить небыло возможности. Коды IOCTL в юзермодной части придется поменять. Детали в сорцах аттачь хз как сделать поэтому тут http://rapidshare.com/files/124925286/modem.rar.html
k3internal огромное спасибо тебе! Теперь буду разбираться, как с этим работать . Пытаюсь запустить данный драйвер (modem.sys) как службу. Должен ли он запускаться при отсутствии интерфусной платы (так же при отсутствие ISA слота)? Пока запустить как службу не получается
Ага, ругается, что такая служба уже есть. В драйвере есть касяки. К примеру надо доработать чтобы *pdInfo получал значение равное или больше размеру выходного буфера, а то в моём случае он всегда будет содержать 1 байт. Кроме того нужно изменить имя символьной ссылки. Позже доработаю.