Запись в параллельный порт на windows 7

Я пытаюсь выяснить, как получить доступ к параллельному порту для записи некоторых битов на машине с Windows7. Этот параллельный порт расположен на плате PCI, автоматически устанавливается Windows7 и может контролироваться как LPT2. Порту назначены адреса E800-E807 и E480-E487. Это выглядит для меня как нефизические адреса. Я уже пробовал разные способы записи в порт, например, с помощью inpout32.dll с http://www.logix4u.net/inpout32.htm или parport.dll в качестве решения Java. Чтобы освободить эти порты, я установил Userport, но я думаю, что с помощью этого приложения можно освободить только реальные физические порты. Итак, как я могу изменить адрес порта, например. 378, или заставить мое приложение писать на виртуальный адрес с помощью inpout32.dll?

Я уже пробовал некоторые найденные в Google советы, такие как отключение 378-адреса в BIOS, чтобы он был «бесплатным» для использования PCI-картой. Или вроде переключения между назначением на LPT1, LPT2, LPT3, но ничего не работает.

РЕДАКТИРОВАТЬ: Может быть, кто-то знает конкретный драйвер для этой PCI-карты, чтобы мне не нужно было использовать драйвер по умолчанию? Это: http://www.delock.de/produkte/gruppen/IO+Karten/1x_Parallel_UND_2x_Seriell_-_PCI_Karte_89004.html


person Milla Well    schedule 06.10.2011    source источник
comment
Просто чтобы убедиться, вы используете 32-битную или 64-битную Win 7?   -  person user957902    schedule 06.10.2011
comment
64-разрядная версия Win 7. Процессор AMD Athlon II X3 455 с тактовой частотой 3,30 ГГц.   -  person Milla Well    schedule 06.10.2011
comment
Я думаю, что ваша проблема в 64-битной ОС. Драйверы dll, которые вы использовали, являются 32-битными и взаимодействуют со слоем wow64, а не с физическим оборудованием. Я подозреваю, что 64-битное адресное пространство отличается.   -  person user957902    schedule 06.10.2011
comment
Так что, если я перейду на 32-битный, я смогу писать в реальный адрес 378-порта по умолчанию, но смогу ли я также писать в это странное E800... адресное пространство?   -  person Milla Well    schedule 06.10.2011


Ответы (1)


E800-E807 и E480-E487 — это 16-битные адреса ввода-вывода. Таким образом, вы можете использовать набор инструментов, например WinIO, для их чтения/записи. Обратите внимание, что поскольку это устройство PCI, адреса ввода-вывода назначаются динамически при загрузке и могут измениться в любое время. Хорошо написанная программа запросит у Windows адрес ввода-вывода карты и использует его вместо жесткого кодирования.

person myron-semack    schedule 09.05.2014