Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[ASM] Chingachguku 19.10.01 09:01 Число просмотров: 1015
Автор: :-) <:-)> Статус: Elderman
|
> А вот и нет. Винды 95/98 при своей работе используют > некоторые сервисы биоса(В любых задачах - и в вордах, и > т.п.).Скажем, для работы с винтом вовсю вызывается > оригинальный Int 13h, для получения нажатых клавиш - > оригинальный обработчик int 16h реального режима. Видимо, > для их вызова винда переключается в режим v86. А вот для > работы с дискетами у винды есть свой собственный драйвер, и > оригинальный биос не вызывается. Почему так ? Видимо, > ребята не рискнули полностью взять на себя работу с > устройствами ...
Это было сделано в целях совместимости.
В Win9x есть драйверы для всех устройств, и она вызывает обработчик прерывания реального режима, только если видит, что обработчик нестандортный (не принадлежит ДОС или БИОС). Это называется paging through MS-DOS, и конечно, снижает быстродействие.
А если Win9x видит у переывания стандартный обработчик, она использует свои драйверы защищенного режима, а прежний обработчик не вызывает.
Был такой вирус - OneHalf (для тех, кто не помнит - он пишется в MBR и перехватывает Int 13h еще _до_загрузки_ДОС.) В результате винда не замечала, что Int 13h было перехвачено и не вызывала вирусный обработчик Int 13h. Из=за этого часть винта, которую вирус успел зашифровать, не читалась, зато при загрузке в Safe Mode или Command Prompt все было OK :)
И вообще очевидно, в таких случаях лучше писать VxD...
|
- [ASM] - J 16.10.01 09:39 [811]
- [ASM] - finder 20.10.01 10:47 [959]
- [ASM] - Chingachguk 16.10.01 11:16 [925]
|
|
|