Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Субж! Возможно ли? И если да, то как? Пишу на моём любимом Борман Дэлфи 3.



Партнер
 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Нет, не возможно http://forums.overclockers.ru/viewtopic ... ight=smbus

_________________
Ку ку


 

Daemon:
Цитата:


Не спеши с закрытием темы, я думаю иначе. К тому же я не работаю с SMBUS.
Я вызываю из драйвера, передав ему указатель на буфер:
Код:
Type
  TDriverRequest = record;
  Wparam : dword;
  Lparam : dword;
  IOCode : byte;
End;

Procedure ReadDataAsm (PBuffer: Pointer); stdcall;
Asm
  mov edi, PBuffer
  mov ax, func //номер функции
  int 15h
End;

Procedure GetData;
Var
  PBuffer : Pointer;
  DriverRequest : TDriverRequest;
Begin
  GetMem(PBuffer,2048);
  …
  //Здесь я передаю в драйвер указатель на функцию и т.д.
  DriverRequest.IOCode:=$8000100;
  DriverRequest.Wparam:=DWORD(@ReadDataAsm);
  DriverRequest.Lparam:=DWORD(@PBuffer);
  //…
  WriteFile(hDriver…..);
  FreeMem(PBuffer);
End;

Но после вызова моё приложение подвисает настолько, что убить его невозможно.


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Цитата:
int 15h

и что этим подразумеволась? В общем, RTFM. Программирование под ДОС - не программирование под винду и наоборот.
Здесь надо применять другую методику действий (без Int15h)

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Root этим подразумевался драйвер Ижикиева, и его возможность вызова юзер-мод процедуры, чтобы она отработала в кернеле. Но так как господин Джунгль плохо знает матчасть, он не знает того, что ring0 вовсе не значит, что все дозволено, в особенности вызов ДОС прерываний. На этом - все.
Добавлено спустя 1 минуту, 21 секунду
Темы объединил и вновь открыл.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 03.10.2004
Откуда: Орехово-Зуево
Wehrmacht Soldat, напрямую вызывать int 15h нельзя, но недокументированно никто не запрещает. Зайди сюда: http://www.missl.cs.umd.edu/winint/index2.html Хотя, какая разница, всё равно тебя забанили… эх….


 

Member
Статус: Не в сети
Регистрация: 23.09.2003
Откуда: South Ural
b0b
windows вызывает все прерывания (кроме 10-го) на этапе ранней инициализации - еще до перехода в защищенный режим процессора;
теперь о недокументированности - если вам по силам написать вызов 16-ти битного реального кода биос из 32-х битного защищенного (все в ринге 0), то действительно - никто не запрещает ;) но это уже вчерашний день, а сейчас - 16bit bios callbacks из 64bit long mode принципиально невозможны - так что забудьте

_________________
http://stargaz0r.nm.ru
http://people.overclockers.ru/StarGaz0r/files


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan