Нужно под виндой программно получить базовый адрес LPT-порта. LPT-порт расположен на STLab-овской PCI плате.
Пишу напрямую в порт в служебные регистры для специфического девайса, и, скорее всего, на машинах, где будет запускаться прога, тоже стоят платы расширения. Адреса, соответственно, какие угодно.
следующие варианты не прошли:
1. чтение из 0000:0408 — винда запрещает
2. DeviceIoControl(hLPT, IOCTL_PAR_SET_WRITE_ADDRESS, .......) — возвращает true, однако в буфере 0
3.
ntport возвращает не то, что есть на самом деле (а некие стандартные адреса, типа 378h). Работает корректно только на мат. платах со встроенным LPT-портом (т.е. меняешь адрес в системе, и ntport это дело унюхивает)
API-шную функцию не нашел (может, плохо искал)
giveio работает как-то странно (может, интересно): после загрузки драйвера на выходах данных высокий уровень — смотрел светодиодом.