![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
INT 16h [D6, D7, Win2k, WinXP]
spyrytus © (2006-02-23 20:32:00)Добрый вечер.
Как под "Windows 2000" или "Windows XP" написать следующие: Например : int 77hили int 16h), чтобы не было ошибки при исполнении программы.
Спасибо.
Джо (2006-02-27 16:51:00) [1]> [15] Crash Coredump © (27.02.06 12:24)
>
> > стандартный обработчик прерывания Int 16h это BIOS keyboard
>
> > services.
>
>
> до запуска NTLDR
ключевое слово в моем посте стандартный
Crash Coredump (2006-02-27 12:24:00) [2]
> стандартный обработчик прерывания Int 16h это BIOS keyboard
> services.
до запуска NTLDR
ArtemESC (2006-02-26 19:54:00) [3]>>Defunct © (24.02.06 23:44) [13]
Действительно не знаю... Зачем?
Defunct (2006-02-24 23:44:00) [4]> ArtemESC © (24.02.06 20:56) [10]
М'сье может растолкует тогда зачем автор кода пишет xor eax, eax перед вызовом int 16h?
> spyrytus
зачем вам int 16h?
ArtemESC (2006-02-24 21:22:00) [5]Джо © (24.02.06 21:05) [11]
В защищенном режиме все (или почти) по другому...
Чтобы вызвать стандартные прерывания, нужно перейти
из защищенного в виртуальный режим...
www.sasm.narod.ru
Джо (2006-02-24 21:05:00) [6]> [10] ArtemESC © (24.02.06 20:56)
> Кстатье INT 16h - вроде как прерывание исключения в защищенном
> режие...
Не знаю, что такое "прерывание исключения в защищенном "режиме", но стандартный обработчик прерывания Int 16h это BIOS keyboard services.
ArtemESC (2006-02-24 20:56:00) [7]Кстатье INT 16h - вроде как прерывание исключения в защищенном режие...
Pavia (2006-02-24 20:45:00) [8]spyrytus
Правильно писать под дос. Либы драйвер. Обычно драйвер пишут на Асемблере или Си. Нетак давно было выяснино, что на дельфи3 можно написавть драйвер. Есть третий вариант прорываться через дыры в винде на 0 уровень.
Только ты объясни, зачем тибе прерывания.
Джо (2006-02-24 20:38:00) [9]> [7] spyrytus © (24.02.06 20:31)
> Ну тогда, дай наводку, как правильно !
Уже дали, см. [2]. На пользовательском уровне (из любой программы, написанной на Делфи) эти инструкции запрещены. Можно вызывать только из режима ядра.
spyrytus (2006-02-24 20:31:00) [10]
[4] spyrytus © (24.02.06 18:38)
Ошибка продолжается, может, что-то не правильно...
> Джо © (24.02.06 18:54) [6]
Всё.
Ну тогда, дай наводку, как правильно !
Джо (2006-02-24 18:54:00) [11]> [4] spyrytus © (24.02.06 18:38)
> Ошибка продолжается, может, что-то не правильно...
Всё.
Джо (2006-02-24 18:54:00) [12]> [3] grisme © (24.02.06 18:06)
> Получить приоритет 0 кольца процессора. Придется править
> таблицу прерываний.
Так-таки и так?
spyrytus (2006-02-24 18:38:00) [13]Ошибка продолжается, может, что-то не правильно...
...
var
PriorityClass, Priority: INTEGER;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(PriorityClass, HIGH_PRIORITY_CLASS);
SetThreadPriority(Priority, THREAD_PRIORITY_HIGHEST);
asm
XOR eax,eax
INT 16h
end;
end;
...
grisme (2006-02-24 18:06:00) [14]Получить приоритет 0 кольца процессора. Придется править таблицу прерываний.
Чапаев (2006-02-24 12:23:00) [15]Писать под ДОС...
ArtemESC (2006-02-23 22:04:00) [16]>>spyrytus © (23.02.06 20:32)
Получить привелегии для данного процесса...