Здравствуйте, Аноним, Вы писали:
А>можно ли использовать в nt подобной ОС в частности xp инструкции in/out ?
А>к примеру вот этот вот кусочек кода
А>А> __asm {
А> push edx
А> mov dx, io_Port
А> mov eax, val
А> out dx, eax
А> pop edx
А> }
А>
А> падает на
А>А>out dx, eax
А>
А>с ексепшеном 0xC0000096: Privileged instruction.
В прямую так делать нельзя. Надо писать драйвер по правилам Папы Гейтса — WinDDK и иже с ним.
В кривую — есть два три с половиной обходных пути:
1. Попросить кого-нибудь кто знает как это делать (я знаю...).
2. Поискать в ИНЕТЕ что-то вроде Jungo kernel drivers (название могу перепутать)
Смысл в том, что ставится в систему драйвер, который дает замену функциям С outport, inport.
Цена вопроса -50 мкс на одиночное обращение к порту на машинах с 2-3 ГГц процессорами.
Заранее предупреждаю-прерывания от самопальных устройств обычно этим драйвером не поддерживаются.
3. Поискать в ИНЕТЕ драйвер (забыл название) который перестраивает IOPM процессора в результате чего
открывается доступ КО ВСЕМ портам. Ставить это на общедоступную машину не советую-может рухнуть Ось.
Последний раз играл в эти игры на Win2000. На Хр были какие-то мелкие проблемы, но решать их не стал, а стал честно писать драйвера.
3 с половиной. Реанимировать Win95-98. Там такие игры с прямым доступом к портам ненаказуемы — IOPM в "правильном" состоянии.
Удачи!
To err is human... (C)