Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];

Вниз

Порты   Найти похожие ветки 

 
TSR   (2001-10-11 15:41) [0]

Как из программы узнать адреса LPT и COM портов?


 
Digitman   (2001-10-11 17:11) [1]

ну, узнал ... дальше с ними что делать собираешься ?


 
TSR   (2001-10-12 09:13) [2]

Есть Dll, которая работает с портами по их адресу

И еще уточнение
Узнал, что информация о портах находится в BIOS по
адресу $00000408
Пробую читать так:

mov ax,0
mov ds,ax
mov si,408h
mov ax,[si]

В паскале под DOS проходит, а в DELPHI под WIN32 нет

Интересно в чем дело?


 
Digitman   (2001-10-12 09:46) [3]

А дело в том, что платформа Win32 использует защищенный режим (PM) работы CPU, в то время как DOS - реальный режим (RM). В RM тебе непосредственно доступны все ресурсы компа, в то время как в PM это зависит от уровня привелегий (исполняемого кода прежде всего). Прикладные задачи в Win32 имеют 3-й (наинизший) уровень привелегий, в то время как ядро Win32 - 0-й (наивысший). И выкрутасы с фривольной (ничем неконтролируемой) манипуляцией апп.ресурсами компа доступны только на высшем уровне привелегий.


 
TSR   (2001-10-13 12:42) [4]

А как установить высший уровень привелегий для моей программы в win32?

Кстати в w2k в delphi cpu window по адресу $408 видны нули, в то
время как в w98 адрес порта LPT1

Почему так?


 
Anatoly Podgoretsky   (2001-10-13 19:26) [5]

Ты про какую память нам расскажываешь, ты что дкмаешь это та же самая память что и в ДОСе


 
Digitman   (2001-10-14 15:24) [6]

>TSR
В Винтукее - кроме как в теле драйвера - никак (не сей день мне такие "дыры" неизвестны)

В Вин9x - запросто. Формируешь новый дескриптор шлюза с нужным DPL - и вызываешь этот шлюз !

А дальше ты спросишь, что такое шлюз и как его сформировать ... А дальше ... дальше ))

Задача-то твоя, наверно, и не стоит знания всех этих тонкостей. Если нужно просто что-то слать в порты / читать из них - на то есть соотв.вызовы API, и эти вопросы чуть ли не ежедневно в форуме обсуждаются. Просто поищи в форуме все, что касается данной темы, и проблема "как залезть в BIOS" отпадет сама собой.


 
TSR   (2001-10-15 10:00) [7]

Вообще-то информация о портах находится в системном реестре, но дело в том,
что есть машина с установленной мультикартой. На ней есть порт LPT2.
В системе (W98) порт LPT2 не виден. При посылке данных по его адресу
(который в BIOS) из-под DOS все проходит.
Надо из-под (W32) определить программно адрес LPT2.


 
Digitman   (2001-10-15 11:00) [8]

дополнительный LPT не виден, потому что ты его не зарегистрировал в системе
Это делается в станд.диалоге Винды "Установка оборудования". После инсталляции порта LPT-драйвер будет "видеть" твой LPT2 точно также, как он "видит" LPT1 по-умолчанию. И никаких ДОСов не нужно - пользуйся WinAPI : CreateFile(), DeviceIOControl() и иже с ними.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
3-90233
EternalWonderer
2001-12-25 10:01
2002.01.28
Проблема с join в connect by запросе.


3-90226
Ross
2001-12-24 21:58
2002.01.28
ProgressBar


6-90346
ddd-numerical TV
2001-11-05 15:12
2002.01.28
Webserver написать...


14-90352
Brand
2001-11-30 23:35
2002.01.28
Кодирование информации


1-90321
Sasha2
2002-01-11 11:02
2002.01.28
Как в TMemoryTable задать Filter?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский