Такая трабла... Меняю dr7. Некоторое время он сохраняется... Потом после QUERY_DEVICE_RELATIONS dr7 сбрасывается в дефолт 0x400 Пытаюсь выставить у dr7 13 - бит в 1 - не выстанавливается... В чем трабла? Как тогда глобально выставить dr7 в нужное значение? Если 13 бит dr7 ставить в int 1 - виснем.
Сбрасывается в дефолт? В ВинХР такое делает winlogon. Чтобы не делал, нужно сбросить бит отладки где-то в дебрях EPROCESS (если нужно, могу уточнить). А зависание при выставлении 13-го бита происходит, если сначала выставить его и в обработчике же первого перывания попытаться модифицировать отладочный регистр, то есть банальное зацикливание
при генерации первого прерывания процессор сбрасывает 13-й бит в dr7, так что его нужно восстанавливать в конце обработчика прерывания каждый раз
Вопрос, если можно так сказать, решен... Зацикливание происходит из-за того что винда проверяет, как записался регистр, и пытается записать заново, при обломе...