Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Как вызвать Int 2f: я как раз счас это изучаю... 22.02.02 02:45 Число просмотров: 1070
Автор: Chingachguk <Chingachguk> Статус: Member
|
Я полный чайник в винде, но счас как раз это все изучаю.
Вот что я пока напарил по этому вопросу:
- в дельфи и сях точно(или почти точно есть ф-ции типа "Эмулировать прерывание реального режима". Ей пероедается структура из регистров, которые подсовываются в момент его вызова) По крайней мере, люди так звали Int 25h/26h и int 21h;
- Сначала я думал, что эта хрень просто апи из kernel-а или юзера.dll или исчо откуда, но, посмотрев свои inc-и, думаю, что это не так.
- Есть такая шняга, как VxD. Они бывают статические и динамические, последние может грузить win32-код через CreateFile(\\..\имя_vxd) и по хэндлу работать с ними.
- Я нашел, что между собой они могут общаться через int 20h:
int 20h
dw Номер сервиса нужного VxD
dw ID VxD
Например, vmm32.vxd можно звать так:
dw 1h - Это ее ID;
dw 084h - Это ее сервис, "Execute V86 mode interrupt"
Как они параметры(регистры для execut-а) друг другу передают - хз.
- Трабл в том, что так могут звать друг друга ТОЛЬКО vxd, а мы грим о win32 коде. Но отрадно то, что в отладчике, написав в win32 такой вызов, я увидел именно это: VxDCall 0001 0084 !
- Для юзеровских прог есть вроде такая вещь, как DeviceIoControl.
Вроде бы можно динамическую vxd так загрузить, но на своем примере я так и не смог пока открыть через CreateFile ни одну VxD, блин :(((((
Вот так.
Буду признателен, если сможешь чем-то просвятить меня по этому поводу.
Спасибо.
|
|
|