Здравствуйте, MNZ, Вы писали:
MNZ>Здравствуйте, eesh, Вы писали:
E>>Может подскажите, как снять эту привилегию с регистров ввода/вывода и зачем это делать?
MNZ>Можно использовать один из распространённых драйверов (загружаются программно, затем из пользовательского режима можно напрямую обращаться к портам), например, giveio.sys. Их несколько разных, но делают одно и то же. В сети без труда найдёте.
MNZ>Зачем? Да потому что в пользовательском режиме инструкции in, out и некоторые другие относятся к привелегированным и не допускаются к выполнению. И если загрузчик встретит их в приложении, будет сгенерировано исключение со всеми вытекающими. Вышеупомянутый драйвер как раз и даёт приложению полномочия выполнять подобные инструкции.
Спасибо большое теперь с Windows всё понятно!
Но, простите за назойливость (хочется до конца разобраться), а если запускать из-под DOS, то результат будет тот же? Или адреса портов, выделенные Windows, уже будут не действительны в DOS? Тогда как можно узнать DOSовские адреса ? При этом хочу заметить, что в CIS самой карточки вроде как указываются адреса ввода-вывода, которые ей нужны? Эта информация учитывается в Windows и DOS?