Эта тема уже была, но ее вроде так и не разрулили. Вопрос в том, что нужно сделать с портами принтера(0x378-0x37a, например), чтобы обращение к ним приводило к изменению состояния самого устройства "LPT-порт". Автор предыдущей одноименной темы отмечал, что обращение к портам не приводит ни к какому результату в плане работы устройства, если соответствующий стандартный драйвер не загружен. А теперь я обнаружил, что на некоторый машинах (с некоторыми паками винды возможно) также обращение к портам не приводит ни к какому результату даже при загруженном стандартном драйвере. Так вот вопрос состоит в том, что же с портами нужно сделать, чтобы гарантированно можно было с ними работать??? И еще вопрос из той же оперы: как можно программно маскировать/размаскировывать прерывания? Я уже убедился, что пока в дивайс-менеджере не поставишь опцию "Использовать любое прерывание предназначенное порту", никакие команды типа in al,0x21 and al,0x7f out 0x21,al не приведут к размаскировке IRQ7. Выходит и эти порты тоже заблокированны?
LPT на NT - клинический случай. Решение одно - драйвер. Не нравится - сносите винду и покупайте дискетку с досом.
Quantum Вы, наверное, не поняли. Я спрашивал что я должен сделать чтобы включить порты, находясь в своем драйвере, который, правда, стоит не как драйвер LPT, а как какой-нибудь другой. Если случай и вправду клинический, то все-равно хотелось бы знать хотябы, что там происходит при обращении, и почему оно ни к чему не приводит.
Portmon не работает на многих машинах. Мне кажется, что глюк таится в фирменном драйвере принтера. 100% уверенности, конечно, нет. Ещё факт: в документации к LPT-заглушкам хаспа и rainbow часто пишут, что драйверное ПО принтера может перекрывать доступ к порту и рекомендуют хотя бы выключать принтер перед использованием заглушки. В обоих случаях (и в портмоне, и в хаспе) используется драйвер, но работает не всегда. Отчасти из-за этого, наверное, заглушки теперь в основном USB-шные. В общем, если Вы написали драйвер, включили в нём маппинг этих портов (как в соседнем топике писалось с ссылками на статьи), а порты всё равно закрыты... мои скудные познания в области нулевого кольца не позволяют ещё что-либо порекомендовать.
Ладно, придется ботать пример TOTAL IO похоже. А мне раньше казалось что всем ядерным потокам все порты доступны. А если бы юыли бы недоступны, то должно было бы происходить какое-нибудь исключение типа "ACCESS VIOLATION". Что-то мне кажется что это все происки PnP менеджера, с которым parport.sys сильно скорешился...