Программирование модемов

Удалить FOSSIL драйвер из памяти



Удалить FOSSIL драйвер из памяти

Данную подфункцию можно использовать для удаления FOSSIL драйвера из оперативной памяти компьютера. При этом драйвер освобождает телефонную линию, восстанавливает все перехваченные им векторы прерываний и возвращает адрес своего блока MCB. Далее вы можете воспользоваться функцией 49h прерывания INT21h для освобождения этого MCB.

На входе: AH = 0E0h;

AL = 05h.

На выходе: BX = адрес MCB или 0 в случае ошибки.

Приведем пример функции программы UNINST, удаляющей FOSSIL драйвер из памяти:

// UNINST.C

int uninstall(void);

void main(void) {

int ok;

ok = uninstall(); printf("Удаление FOSSIL драйвера из памяти %s.", (ok) ? "прошло успешно" : "невозможно" ); }

int uninstall(void) {

int ok = 0;

_asm {

// определяем адрес MCB блока драйвера

mov ax,0E005h int 14h

// в случае ошибки возвращаем управление

cmp bx,0 je no_uninstall

// es = bx

push bx pop es

// освобождаем MCB блок, используемый драйвером

mov ah,49h int 21h mov ok,1

no_uninstall:

}

return(ok); }



Содержание раздела