| Autor |
Beitrag |
markus L
Hält's aus hier
Beiträge: 3
|
Verfasst: Do 02.09.10 09:02
Hallo,
ist es möglich unter W2K und höher eine Art treiber zu erstellen,
mit dem man zugriffe auf I/O Adressen umleiten kann.
In der art so etwas wie Direct IO, aber halt mit umleitung.
Hintergrund, eine Applikation (kein Quellcode vorhanden) die unter Win9x auf den RS232 Port zugreift auf
einem XP rechner (Laptop) mit einem USB RS232 Adapter Lauffähig zu machen. (Keine HW RS232 Vorhanden)
wo setzt man am besten da an ?.
MfG
Markus
Zuletzt bearbeitet von markus L am Do 02.09.10 13:40, insgesamt 1-mal bearbeitet
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Do 02.09.10 12:55
markus L hat folgendes geschrieben : | Hallo,
ist es möglich unter W2K und höher eine Art treiber zu erstellen,
mit dem man zugriffe auf I/O Adressen umleiten kann.
... |
Hallo,
da stehen 2 Probleme im Weg: erstens werden im Anwendermodus keine I/O-Befehle ausgeführt, und zweitens ist die Hardware des Adapters u.U. ganz anders aufgebaut als die PC-Standard-Comschnittstelle. Das erste Problem lässt sich nur durch Treiber-Programmierung lösen, Treiber dürfen was der Anwender nicht darf.
Gegen mangelnde Register-Kompatibilität hilft nur eine Art doppeltes Re-Engeneering, wenn überhaupt: man muss nicht nur das Programm rückübersetzen, sondern man muss auch herausfinden, was der Programmierer mit dem Befehl "setze Bit x in I/O-Register Y" eigentlich bezweckt hat. Soll damit etwa RTS gesetzt werden, kann man das durch den entsprechenden WIN32-API-Aufruf ersetzen. Wenn es den aber nicht gibt, scheitert das Ganze. Mühsam ist es in jedem Fall.
Gruss Reinhard
|
|
markus L 
Hält's aus hier
Beiträge: 3
|
Verfasst: Do 02.09.10 13:38
Hallo,
sehe schon scheint mir recht Arbeitsintensiv zu sein  .
Es geht eigendlich nur um die RXD TXD Leitung, HW Handshake o.ä. wird nicht benutzt.
Danke
Gruß
Markus
|
|
SAiBOT
      
Beiträge: 323
Erhaltene Danke: 6
XP SP2; 7
D7; D2009
|
Verfasst: Do 02.09.10 23:33
Das hier habe ich irgendwo mal gefunden, könnte dir behilflich sein.
Einloggen, um Attachments anzusehen!
_________________ Debuggers don't remove bugs, they only show them in slow-motion.
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Do 02.09.10 23:53
markus L hat folgendes geschrieben : |
Es geht eigendlich nur um die RXD TXD Leitung, HW Handshake o.ä. wird nicht benutzt.
|
Hallo,
auch dann muss erst mal Baudrate, Länge, Parity usw. gesetzt werden, auch No handshake ist eine Handshake-Spezifikation. Als erstes solltest du eine Liste erstellen, welche I/O-Adressen benutzt werden.
Gruss Reinhard
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 03.09.10 16:05
Alternativ bliebe noch die Variante (ist übrigens in dem Fall erlaubt), das betroffene Programm in Bezug auf seine Treiber-Schnittstelle (also der Teil, der die Hardware ansteuert) zu reverseengineeren und durch einen InProcess-Patch durch eine Weiterleitung an eine externe DLL zu emulieren. Wenn die IO-Funktionalität gut separiert in einer eigenen DLL liegt, hat man hier sogar ein recht einfaches Spiel, da man nur die DLL-Schnittstelle verstehen und erneut umsetzen muss.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
ssb-blume
      
Beiträge: 375
Erhaltene Danke: 7
XP, W7, W8
Deutschland
|
Verfasst: Sa 04.09.10 09:28
Hallo,
geht ganz einfach über Filestream, anbei Quellen und Testprogramm
Viel Erfolg,
Hansi
Einloggen, um Attachments anzusehen!
_________________ Brain: an apparatus with which we think we think.
|
|
|