{img1} |
резервное копирование |
|
Можно написать программу для восстановления вектора, если
значение старого вектора хранится где-нибудь в резидентной под-
программе, и программа восстановления может найти его. Этот про-
цесс сохранения вектора для его последующего восстановления де-
монстрируется в листингах программ INIT28 (листинг 3-12) и REMOVE
(листинг 3-13).
Если память резидентной подпрограммы управляется с помощью
своего собственного прерывания аппаратных средств (но не в форме
"заплаты"), то перед удалением резидентной подпрограммы необходи-
мо обеспечить невозможность возникновения прерывания от этого ус-
тройства. |
panda |
|
|
Можно изменить вектор в таблице или оставить его так,
как он есть.
РЕГИСТРЫ ВНЕШНИЙ СЕГМЕНТ
.----------------.
AX:4B00 (шест.)<---Функция ВЫПОЛНИТЬ ПРОГРАММУ| ... |
|----------------|
BX:Указатель на имя файла в ASCIIZ ---------->| имя файла/пути |
| нулевой байт |
DX:Указатель на блок параметра --------. |
norton |
|
|
|----------------|
| | ... |
Адрес ENVIRONMENT (СРЕДА) | \/\/\/\/\/\/\/\/ xxxx:0000 .--------
---------. |
програмное обеспечение |
|
|
прокси сервера, антивирус panda, програмное обеспечение, win zip, программы архиваторы, .
архиватор winrar
|
... ; область данных
start: <начало программного кода>
... ...
----------------------------------------------------------------
Удаление резидентных подпрограмм из памяти
Когда программа закончила использование RTL, или когда рези-
дентная подпрограмма больше не нужна, может возникнуть необходи-
мость восстановления памяти, которая была распределена для этой
подпрограммы. Наиболее простым способом удаления резидентной
подпрограммы является перезагрузка системы. Это позволит восста-
новить все векторы, которые требует система, и возвратить системе
всю распределенную память. Однако, это очень решительный шаг и
лучше зарезервировать его для безнадежных ситуаций.
Удаление подпрограммы без перезагрузки системы необходимо вы-
полнять с помощью следующих двух шагов:
1. Отключение подпрограммы.
2. Восстановление памяти.
Первый шаг состоит в установке в нулевое состояние вектора,
- 3-43 -
указывающего на подпрограмму. Нулевое состояние для любых потен-
циальных пользователей означает, что подпрограмма больше недо-
ступна. Если резидентная подпрограмма была расположена на участке
памяти ("заплате") для ранее существующего вектора, то вектор
должен быть восстановлен так, чтобы он указывал на первоначальную
ячейку.
|
|
|