Здрасте!!! я тут новенький. необходимо выполнить кусок кода под Win Код (Text): mov ax, 6F02h mov bl, FFh int 15h под досом все прекрасно работает. а как тоже самое сделать под виндой не знаю. знаю только одно что надо это делать с ring 0 может кто поможет и покажет кусок работающего кода? или хотя бы подробно расскажет план необходимых действий. Заранее благодарен!
Встречный вопрос - а вы знаете, что такое под win на 15h векторе будет? мне что-то подсказывает, что далеко не тоже самое, что в дос. То есть смысл-то выполнения этого кода в ring 0 вообще есть?
FatMoon эм.....не знаю даже вообщем это кусок кода из документации по WatchDog'у. под досом все прекрасно работает. надо "тоже самое" сделать что бы работало из под win. как мне быть?
crypto апаратный вачдог - для перезагрузки системы. если постоянно не обновлять счетчик, то железяка делает ребут системы
А запускать дос-приложение под окнами? Если там некоторая периодичность вызовов нужна - запустить и свернуть... и пусть висит весь день свернутое? Если конечно Windows позволит Потому как иначе - только драйвер аппаратного WatchDog'а. Но там, очевидно, придется выполнять не int 15h, а как-то работать с портами. (как мне кажется)
FatMoon код проверял под "чистым досом" без всяких окон. а все же если предположить что этот код и под виндой сработает, то как это должно выглядеть? те собственно говоря:
DENver А что действительно кроется под данной функцией int 15h? Какой код вызывается? ИМХО отсюда и нужно пытаться танцевать в данной ситуации.
DENver вызывать код биоса реального режима и апи доса под Windows нельзя (про ntvdm молчу). нужно использовать соответствующие апи Windows для выполнения той же операции с логической точки зрения. ринг0 вообще не в тему здесь
План действий - проверить, работает ли дос-приложение под окнами нужным образом. (Вовсе не факт, что так сразу и не работает - ВМ позволяет дос-программам работать с *некоторыми* портами) Если это был резидент - возможно, переписать на зацикленную программу. Если работает - то или сделать как сказал (запустить и свернуть), или написать оболочку, висящую в памяти и по некоторым событиям (таймер, или комбинация клавиш) запускающую дос-приложение. Если не работает, то узнать, что делает прерывание 15h под досом, поскольку оно не просто принимает число в регистре, а как-то программирует определенные порты какой-то железяки. Потом написать драйвер, который в защищенном режиме будет работать с теми же портами аналогичным образом. Написание драйверов должен объяснять не я, и не на пальцах - это тема сложная, особенно если ни разу не делал ничего подобного. Пара толстых бумажных мануалов, туториалы с wasm'a и Windows DDK должны помочь. Даже предполагать не буду, что этот код сработает под виндой где-то кроме дос-сессии под виртуальной машиной - потому что не сработает. Потому что на прерываниях под виндой висят 32-разрядные процедуры, а сами прерывания не документированы - вместо прерываний апи используют. И никто на 15-й вектор эмуляцию 16-битного кода из дос не вешал. Ввиду очевидности этого никто ничего более толкового и не отвечает
A BIOS function call (INT 15H) is used to control the Watchdog Timer: INT 15H: AH – 6FH Sub-function: AL – 2 : Set the Watchdog Timer’s period BL : Time-out value(Its unit--second or minute, is dependent on the item “Watchdog Timer unit select” in CMOS setup).
досовское приложение под виндой не работает - проверил. как быть дальше? если все таки нада что бы работало под виндой в доке ни чего кроме(см. пост выше) этого не сказано
DENver Теперь анализируешь ДОС-код, который спрятан за данной функцией INT 15H (реверсишь), определяешь логику его работу, а потом пытаешься перенести код под Вынь.
crypto как это сделать? те как достать код INT 15H и что значит среверсить? Прошу отнестись с пониманем
DENver Реверсить - значит восстановить алгоритм на основе бинарного кода. ЗЫ Ссылка на тебя же: http://forum.vingrad.ru/forum/s/c9d...4ee98/topic-169876/anchor-entry1259737/0.html
DENver Не надо разбираться, лучше почитай здесь (Метод 3) http://www.quancom.de/quancom/quanc...tp://www.quancom.de/qprod01/eng/pb/pwdog1.htm
crypto не канает. это API для их железяк, а не какое-то унифицированное. вообщем рпоблема все еще не решина