Great Привет. Функцию ищу ту же DrvCopyBits, причем проблем больших то не было по ее поиску - ты берешь в exe который грузит дров вызываешь ряд функций из r3 и их же перехватываешь в ядре (трасировка стека) - но суть не в этом ( сисер и сойфтайс тупо перехватывают регистрацию видео драйвера во время самой ранней загрузки системы) - это просто (даже это Win32k driver not maped обходится ). Теперь самое сложное - синхрониация - у nVidea довольно много таймеров мьютексов и спинлоков во всех функциях вывода а экран. Далее отладчик может "всплыть" в контексте абсолютно любого потока и вызов global.DrvCopyBits может зависнуть на дедлоке -поскольку отладчик ядра останавливает выполнение всех потоков на время своего выполнения - я скажу более на многопроцессорной машине с видеокартой мепирующей свою видеопамять нелинейно зависания довольно частые. Т.о. нахождение DrvCopyBits - это самое легкое что может быть - да еще очень сильно помогает DrvCreateDeviceBitmap. Пока коммерческое решение реально на основе раннего перехвата и подмены колбеков. А теперь самое интересное - запусти 3D игрушку и все У меня на GeForce 8800 получаю несколько первичных поверхностей и на какую выводить чтобы изображение отображалось на экране непоняно - т.е. я следил за текущей активной "первичной" поверхностью (но вышла виста и маленько подзабросил) PS: Ну отладчик дело хорошее - если нужна помощь - стучи в приват
делайте как это делает sysser хучите функции и выводите через них а получать прямой линейный адресс не всегда получиться не все видео карты это позволяют
PROFi Спасибо за ответ А как это спасает от описанных тобой выше зависаний? Это ты к чему? Я вообще в игрушки почти не играю) По-моему, у нас жабберы есть)
Четкая регистрация входа и выхода из функции которую вызвали (не только мы) и через мьютекс или как то еще запретить нам вызывать функцию если она вызвана - в целом что-то можно придумать.