Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как обойти привелегированную инструкцию для записи в порт?


ms_odin ©   (2006-03-27 11:29:00) 

День добрый, Мастера!

Пытаюсь писать в порт RS-232 напрямую. Диапазон ввода-вывода посмотрел в диспетчере устройств, для моей сетевой он D800-D8FF.
записать байтик пытаюсь так:

var
  port : WORD; // порт, куда пишем
  val  : BYTE;  // что пишем

begin
 port := 55297; // = D801;
 val := 1;
 asm
   MOV DX, port // записать в DX номер порта
   MOV AL, val  // записать в AL нужный байтик
   OUT DX, AL   // записб в порт
 end;
end;


При исполнении выполняется ошибка типа "Privileged instruction ...".
Наткнулся на мнение, что NT-системы прямого доступа к портам не дают.
Что можно сделать? D5, W2K+SP4


Сергей М.   (2006-03-27 12:33:00) [1]


> ВСЕ компоненты и функции API "наварачивают" на себя служебную
> информацию протоклов передачи данных различного уровня


см. все по теме RAW SOCKETS


Anatoly Podgoretsky   (2006-03-27 12:24:00) [2]

Доступ до аппаратных ресурсов делается в кольце защиты 0


ms_odin   (2006-03-27 12:16:00) [3]

Приношу извинения за ошибку в вопросе - я не через COM - порт записываю данные, а через сетевую карту.


ms_odin@mail.ru   (2006-03-27 11:55:00) [4]

Хорошо, а как тогда осуществить передачу данных по Ethernet'у без использования протоколов верхнего уровня, TCP и IP? Ведь, насколько я понимаю, ВСЕ компоненты и функции API "наварачивают" на себя служебную информацию протоклов передачи данных различного уровня.


Сергей М.   (2006-03-27 11:45:00) [5]

А надо ли "напрямую" туда лезть ?
На то ведь WinAPI-функции существуют ..


Наверх

Титульная страница Поиск, карта сайта Написать письмо