Народ! требуется помощь: необходимо перехватывать задания, посылаемые на принтер, и, если это ДОС-задания, переделывать их в Вин (PCL). Бог с ней, с переделкой, ... как перехватить? Я понимаю, что под вин 2000/XP надо писать драйвер, но вот только какой и как? ...может быть драйвер-фильтр? и к какому устройству его прицеплять? // я в написании драйверов новичок; все знания ограничиваются статьями Four-F В общем, помогите чем сможете, пожалуйста!
q_q дело не в этом - статьи хорошие, но в них нет про драйверы-фильтры, я мне кажется, что делать нужно именно так. Хотя в виду моей чайниковости по этой теме поправьте меня, если я не прав - я буду только рад.
Про это много отдаленно говорится, но попробуй сам: всё равно для печати посылается IRP пакет (про них есть у Four-F) , напиши каку-нить прогу, которая сама будет пользовать этот способ печати, а потом дебаж её в SoftIce и глянь на IRP, который отослала CallDriver(...) и соответственно будешь знать к какому драйверу посылается пакет и с какими параметрами. Потом аттачишься к нему и ... дальше дело техники.
kilgur Я в принципе в дровах сам новенький.Но раз пошло про фильтры и ирп то помойму самым наглядным является пример filemon от руссиновича (sysint.zip где то на этом сайте есть или смотри тему мониторинг API).Там как раз и идет перехват ирп и как ответил Four-F можно выполнять и прерывание работы ирп(Four-F сказал что такое делается в фаерволах и т.д)
Сразу говорю, что как сделать сабж не знаю, но я просто открыл DDK, набрал в поиске "print" и тут же наткнулся на "Writing a Print Monitor". Может быть он тоже сабжа не делает, но в DDK охриненный раздел "Printer Drivers and Spooler Components" и в исходниках имеется каталог print.
kilgur Это конечно не сильно упрощает дело, но есть готовое решение: http://dvtb.amur.ru/~dosprn/ Правда к нему еще ключик нужен, а потом придется в SoftIce глядеть. Да и автор наверное позаботился, чтобы идеи не украли.... Но все-таки SoftIce обычно удается натравить.
valterg Прога DosPrn - это конечно хорошо, но вот перехват порта под NT/2K/XP она не умеет делать, только под 95/98. 8-( В доке с прогой описывается некоторое хитрое решение, но оно не всегда катит и у меня нестабильно работает. Вот и выходит, что нужен драйвер.
[ kilgur: где бы еще нарыть этот DDK... ] Ну поискать хорошенько. Люди как-то находят. [ kilgur: Можешь поделиться всем, что связано со словом print... ] Боюсь, что не потяну. Больно много с ним связано [ kilgur: ...и одноименным каталогом? ] Стукнись в мыло. Будет ~1.5 метра. И сразу говорю, что внутри я не знаю. Т.е. там какие-то исходники валяются, но делают ли они то, что те надо я не знаю.
kilgur Какое хитрое решение - там примитивная ДОС-программа, которая перехватывает INT 17. Разобраться с ней наверное не составит труда : надо только посмотреть как она накопленный буфер скидывает. А потом им и продашь.