Com und LPT1 ansteuerung unter win2k ?
-
Hallo,
mit Assambler ist es ja nicht sehr schwierig etwas auf den COM oder LPT1 Port auszugeben oder einzulesen. Aber ich hatte mal gehört das würde win2k bzw alle winNT Betriebssysteme unterbinden.
Aber irgendwie muss es ja auch da möglich sein.mfg
Sub Zero
-
Du kannst dir entweder einen eigenen Treiber schreiben, der dir die entsprechenden Rechte verschafft (Portzugriffsrechte) oder du verwendest einfach die von Microsoft zur Verfügung gestellten Funktionen um mit den Schnittstellen zu kommunizieren. (ist viel einfacher als einen eigenen Treiber zu schreiben)
Gruß
Philipp
-
Das wollte ich schon lange mal wissen wie man eigene Treiber schreibt. Du meinst doch die VXD Dateien oder? Könntest du mir vielleicht einen Tip geben zum Thema eigene Gerätetreiber zu programmieren?
-
Du kannst dir mal folgende Seite anschauen, aber soweit ich weiß sind Informationen zur Treiberentwicklung spärlich verbreitet.....
http://www.wischrop-net.de/nt/index_kapitel5.htm
Gruß
Philipp
-
kannst du mir ein paar Informationen zu diesen Funktionen geben?
gruß
Sub Zero
-
Am besten liest du dir das mal durch, da müsste alles erklärt sein:
_inp und _outp (Parallelschnittstelle)Gruß
Philipp
-
wie ist das eigentlich mit Linux? Kann man da direkt mit Assembler auf den Com Port zugreifen?
Oder vielleicht nur bei bestimmten Distributionen?gruß
Sub Zero
-
Original erstellt von Sub Zero:
**wie ist das eigentlich mit Linux? Kann man da direkt mit Assembler auf den Com Port zugreifen?
Oder vielleicht nur bei bestimmten Distributionen?
**Unwahrscheinlich, das würde den Schutz des Systems nicht mehr garantieren.
EIne Möglichkeit ist natürlich den Kernel zu modifizieren, so dass z.B. bestimmte Ports im Usermodus erlaubt sind (Drucker z.B.), aber ich glaube nicht, dass das Standard ist (und auch wohl nicht in den normalen Distributionen), nur ists halt möglich mit etwas Arbeit
Unter Linux hat man aber eigentlich auf Geräte nur über /dev zuzugreifen und das sollte imho auch so bleiben
-
bei win 9x ist das doch möglich wenn ich mich nicht irre.
Wozu eigentlich der Aufwand dass man nur mit speziellen BetriebssystemFunktionen auf die Ports zugreifen kann? Ist das um zu verhindern dass mehrere Programme gleichzeitig auf den gleichen Port zugreifen?
Einen anderen Sinn kann ich eigentlich nicht erkennen.gruß
Sub Zero
-
vielleicht gibt es applikationen die kein recht haben, zuzugreifen.
-
Original erstellt von Sub Zero:
**Wozu eigentlich der Aufwand dass man nur mit speziellen BetriebssystemFunktionen auf die Ports zugreifen kann? Ist das um zu verhindern dass mehrere Programme gleichzeitig auf den gleichen Port zugreifen?
Einen anderen Sinn kann ich eigentlich nicht erkennen.
**Ganz einfach, um die Programme voreinander zu schützen. Nimm z.B. mal den DMA-Controller, den man ja auch via Ports programmiert. Angenommen ein Programm dass Ports verwendet hat einen Programmfehler und schreibt damit "aus Versehen" in die DMA-Ports. Damit kommt beim Betriebssystem vermutlich Müll an, das ist evtl. verwirrt oder liefetr einem anderen Programm für den die eigtnlichen Daten waren den Müll, womit dann Programm B abstürzen kann. Solche mangel an implementierten Schutzkonzepten sorgen dafür dass Betriebssysteme wie Win95/98/ME schnell abstürzen, sobald ein Programm Mist baut.
Dadurch, dass man (wie auch Speicher etc.) Ports nur dem Betriebssystem erlaubt, hat man quasi eine KOntrollinstanz dazwischen. Da ein Betriebssystem mehr oder wneiger immer gut getestet ist udn kaum Fehler enthält, steht die Systembasis sehr sicher. Falls ein Anwenderprogramm Mist baut, kann es problemlos gekillt werden, ohne dass an den tatsächlichen Komponenten (wie oben DMA) überhaupt der Fehler begangen wird.