![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обойти привелегированную инструкцию для записи в порт?
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-функции существуют ..