Проект LPTwdmIO

Проект LptWdmIo -- это некоммерческий проект программного обеспечения (ПО), ставящий целью создание простого и надёжного компонента для работы с параллельными портами IBM-совместимых персональных компьютеров, работающих под управлением ОС Windows. Драйвер написан на базе предыдущего экспериментального проекта, AsmDrv - простого драйвера на ассемблере.

  1. О проекте
  2. Условия использования
  3. Драйвер для прямого доступа к портам
    1. Функциональное назначение
    2. Исходники
    3. Перекомпиляция драйвера
    4. Платформы Windows, на которых работает драйвер
    5. Варианты установки
  4. Работа с драйвером из программ на Delphi
    1. Модуль LPTIO.pas
    2. Нумерация портов и регистров
    3. Нумерация отдельных бит регистров
    4. Функции для вывода данных
    5. Функции для ввода данных
    6. Автозагрузка драйвера
  5. Заключение

 1. О проекте

Проект LptWdmIo -- это некоммерческий проект программного обеспечения (ПО), ставящий целью создание простого и надёжного компонента для работы с параллельными портами IBM-совместимых персональных компьютеров, работающих под управлением ОС Windows. Драйвер написан на базе предыдущего экспериментального проекта, AsmDrv - простого драйвера на ассемблере.

 2. Условия использования

ПО, созданное в рамках проекта распространяется свободно (и бесплатно). Вы можете копировать, распространять и модифицировать ПО по своему усмотрению. Разрешается использование исходников для своих разработок, в т.ч. коммерческих.

 3. Драйвер для прямого доступа к портам

 3.1. Функциональное назначение

Драйвер LPTWDMIO.sys предоставляет пользовательским приложениям возможность управлять параллельными портами ПК. Обращение к драйверу из пользовательских приложений осуществляется через ф-ю DeviceIoControl( ). Он поддерживает два вида операций -- чтение из порта и записи в порт. За одно обращение к драйверу возможны несколько (от одной и более) акций вывода (ввода) данных в (из) регистров порта. Это позволяет легко реализовывать сложные протоколы управления внешними устройствами.

 3.2. Исходники

Драйвер написан полностью на Ассемблере. В прилагаемом архиве LPTWDMIO_4.zip находятся следующие файлы:

Main.asm

Головной модуль драйвера

UseWdm.inc

Определения для использования драйверного API

IoctlCodes.inc

Определения управляющих кодов для обращения к драйверу через DeviceIoControl( )

Resource.rc

Информация о версии и т.п.

Эти четыре файла содержат полный набор исходных текстов, достаточный для воспроизведения драйвера.

 3.3. Перекомпиляция драйвера

Чтобы перекомпилировать драйвер, потребуется Ассемблер MASM 6.0, Компоновщик LINK и компилятор ресурсов от фирмы Microsoft. Их можно взять из комплекта Windows DDK или воспользоваться пакетом Masm32, (более-менее) распространённым в сети. Больше никаких дополнительных средств (MS Visual Studio, и т.п.) не потребуется. Для перекомпиляции драйвера служат следующие файлы:

Wdm.lib

Библиотека (взята из Windows 2000 DDK), позволяющая выполнить сборку драйвера.

Assemble.cmd

Командный файл компиляции модуля main.asm в объектный вид

Link.cmd

Командный файл для сборки бинарника драйвера из объектного файла, файла двоичных ресурсов с использованием библиотеки wdm.lib.

Linkcmd.rsp

Параметры Компоновщика для команды Link.cmd

Resource.cmd

Командный файл для компиляции файла ресурсов resource.rc в бинарный вид.

Buildall.cmd

Командный файл для полной перекомпиляции драйвера

Если вы работаете на платформе Windows 9x, просто переименуйте файлы *.cmd в *.bat. Если вы используете Windows DDK, просто распакуйте исходный архив LPTWDMIO_3.zip в подкаталог \NTDDK\SRC\LPTWDMIO. Затем откройте консоль и перейдите в этот каталог. После запуска buildall.cmd исходники будут откомпилированы, собраны и новый бинарник будет помещён в подкаталог Disk1. Если вы не используете DDK, потребуется небольшая правка командных файлов -- так, чтобы были верно прописаны пути к Ассемблеру, Компоновщику и компилятору ресурсов.

 3.4. Платформы Windows, на которых работает драйвер

Windows 98

Проверено

Windows Me

Проверено

Windows NT4

НЕ проверено, но противопоказаний нет

Windows 2000 Prof.

Проверено

Windows XP Home Edition

Проверено

На ОС Windows 2000 Server и Windows XP Prof. драйвер не проверялся. Но противопоказаний к использованию нет.

 3.5. Варианты установки

Их два:

  1. Установка драйвера вручную.
  2. Автоматическая установка.

Установка драйвера вручную. Установка вручную практикуется при использовании LPTWDMIO на ОС Windows 98/Me. В этом случае надо запустить Мастер установки оборудования и указать ему путь к .inf файлу в подкаталоге Disk1. Там же должен находиться файл lptwdmio.sys. После установки потребуется перезагрузка. Удалить драйвер можно через Диспетчер устройств (значок Система в панели управления). После удаления также может потребоваться перезагрузка. При работе на ОС Windows 2000/XP также возможна установка вручную аналогичным способом. Но в отличие от Windows 98/Me при установке перезагрузка точно не потребуется, драйвер стартует сразу. Кроме того у ручной инсталляции есть одно преимущество: если клиентская программа была запущена от имени пользователя, не обладающего правами администратора, она всё равно сможет работать с портами через драйвер.

 Автоматическая установка. Автоматическая установка выполняется при создании объекта для работы с драйвером (см. след. пункт) в программе пользователя в том случае, если программа работает на платформе семейства NT -- т.е. Windows NT4/2000/XP и драйвер не был ранее установлен вручную. При этом со стороны пользователя не требуется каких-либо дополнительных действий.  Но если программа стартует от имени пользователя, не обладающего административными полномочиями, автоматическая установка не произойдёт, и программа пользователя не сможет управлять портами.

Twitter
Нравится

Дополнительная информация



ZZZZZZZZZ