Есть готовое устройство с готовым драйвером (oxford ox16pci952), реализующее 2 PCI-функции: у одной 2 базовых адреса - это 2 стандартных 16550 ком-порта, у другой - 2 диапазона стандартного LPT-порта. При установке в компьютер оно садится на какие-то весёлые адреса вида 0xffex. При этом в документации на чип чуть ли не на каждой странице сказано, что, если задать в конфигурационных регистрах PCI стандартные адреса, чип сможет их занять и использоваться без специальных драйверов. Вопрос, можно ли винду как-то попросить такие адреса назначить? И кто должен это сделать - само устройство (как? Задать дефолтные значения для BARx, вроде, нельзя), его драйвер, или кто-то ещё? И, главное, можно ли в общем случае это сделать методом "художественной резьбы по живому"?
Или самый злобный вариант: можно ли в винде из приложения записать что-либо напрямую в конфигурационные регистры PCI - руками выставить нужный адрес для LPT-порта, при условии, что в системе такой адрес не используется, и вся дальнейшая работа с ним будет вестись без драйвера?
|