| IOPL w rejestrze FLAGS [wiadomość #771] |
czw, 28 listopad 2002 20:41  |
kareem33 Wiadomości: 2 Dołączył(a): listopad 2002 |
Junior Member |
|
|
Witam. Problem jest zwiazany z C++ Builder. Robie taka mala gre, ktora
ma rowniez sie komunikowac przez COMy. Przerwanie 14h nie dziala tak jak
powinno, wiec postanowilem bezposrednio programowac rejestr UART. Jednak
czy pierwszej instrukcji in al,dx (w dx jest adres LCR dla danego
zlacza) pojawia mi sie blad EPrivelage. Zrozumialem z niego, ze na danym
poziomi uprzywilejowania nie moge wykonac tej instrukcji. Mam wiec
pytanie jaki powinien byc i jak zmienic ow poziom uprzywilejowania?
--
Pozdr - Karol Cieśla
|
|
|
|
| Re: IOPL w rejestrze FLAGS [wiadomość #773 (odpowiedź na #771) ] |
pią, 29 listopad 2002 08:43   |
Bogdan Wiadomości: 75 Dołączył(a): marzec 2002 |
Member |
|
|
"Karol Cieśla" <kareem33@NOSPAMZ.poczta.onet.pl> napisał:
> Witam. Problem jest zwiazany z C++ Builder. Robie taka mala gre,
ktora
> ma rowniez sie komunikowac przez COMy. Przerwanie 14h nie dziala tak
jak
> powinno, wiec postanowilem bezposrednio programowac rejestr UART.
Jednak
> czy pierwszej instrukcji in al,dx (w dx jest adres LCR dla danego
> zlacza) pojawia mi sie blad EPrivelage. Zrozumialem z niego, ze na
danym
> poziomi uprzywilejowania nie moge wykonac tej instrukcji. Mam wiec
> pytanie jaki powinien byc i jak zmienic ow poziom uprzywilejowania?
>
> --
> Pozdr - Karol Cieśla
>
Jaki powinien być? Do portów mają dostęp aplikacje z następującymi
IOPL:
0 - kernel
1 - sterowniki.
Jak już wspomniano, "zwykłe" aplikacje działają z IOPL = 3.
Zmienić tego nie można, oczywiście, instrukcjami typu pushf/popf.
Ale znalazłem w sieci taki sposób: używa się tzw. call gate, dzięki
której można wykonywać kod tylko dla programów uprzywilejowanych. Kod
umieszczony jest w kilku plikach ( głównie Port32.cpp i Port32.h )
znajdujących się w archiwum Port32.zip. Poszukaj na
www.serwismsb.prv.pl, www.ps.nq.pl, lub na www.internals.com (
pochodzenie programu ). Szczegółowe informacje:
// ----------------------------------------- //
// Port32 v2.2 //
// I/O Port Access Under Windows 95/98 //
// Copyright 1998, 1999 Yariv Kaplan //
// WWW.INTERNALS.COM //
// ----------------------------------------- //
Mam nadzieję, że to ci pomoże.
Pozdrawiam,
Bogdan
|
|
|
|
|
| Re: IOPL w rejestrze FLAGS [wiadomość #776 (odpowiedź na #772) ] |
sob, 30 listopad 2002 10:50  |
kareem33 Wiadomości: 2 Dołączył(a): listopad 2002 |
Junior Member |
|
|
Użytkownik piotrk napisał:
> BCB, czyli Windows
tak
> Czyli WinXP?
>
dokladnie
> Aplikacje Windowsowe dzialaja w ring3.
> Sterowniki w ring0.
> Gdzie ring1 i 2 nie mam pojecia.
> Poczytaj o CreateFile - mozna otworzyc uchwyt do COM1, COM2 czy LPT.
>
oki, dzieki
--
Pozdr - Karol Cieśla
|
|
|
Łączny czas generowania strony wyniósł 0,01922 sekund.