> Én is pont ezt csinálom most. Adok egy kis programrészt Delphiben:
>
> procedure outportb(port:word;ertek:byte);stdcall;
> asm
> push dx
> mov dx,port
> mov al,ertek
> out dx,al
> [...]
Ez a megoldas csak W9X/ME alatt fog mukodni (es ott sem preferralt modja az
eszkozok eleresenek, hiszen ha esetleg 2 program is igy probaljd meg
egyszerre elerni, akkor szepen keresztbe tesznek egymasnak). NT/W2K/XP alatt
nem, es oda mindenkeppen kernel modu driver kell. Persze ezeknel is lehet
alkalmazni az olyan altalanos celu drivereket, mint pl. a DLPortIO, csak
ezekkel pontosan ugyanaz a problema, mint amirol az elobb beszeltem, hogy
valojaban csak "atvetik" az operacios rendszeren a dolgot, de az eszkozhoz
torteno hozzaferest nem virtualizaljak, igy a hozzaferes tovabbra is
szinkronizacios problemakat vet fel. Raadasul egy DLPortIO telepitese a
gepre szvsz durva security hole-t is nyit, amivel eleg erosen vissza lehet
elni (es sulyos adatvesztesek oka lehet szandekolatlanul is).
Ajanalom ennek a cikknek az elolvasasat:
http://www.prog.hu/article.php?aid=492 !
Gabor
|