Parallel-Port Treiber schreiben (mit WinAPI?)



  • Ach so, also machen 1) und 2) nur das, was oben im Kommentar beschrieben ist? (Die verschiedenen Rechte setzen?)

    Und 3) demonstriert das ganze dann?

    D.h. statt des Assembler-Krams könnte ich auch normal "outportb(...)" aufrufen?

    Wenn ich das richtig verstanden habe, deaktiviert das ganze also nur den Schutz des Parallelports vor direktem Zugriff, oder wie?



  • Sinthoras schrieb:

    Wenn ich das richtig verstanden habe, deaktiviert das ganze also nur den Schutz des Parallelports vor direktem Zugriff, oder wie?

    richtig, und das ist ja eigentlich das, was du brauchst.
    eventuell könnte dir der aktive parport-treiber deiner windoofs-kiste dazwischenfunken, aber den kannste ja über die systemeinstellung irgendwie deaktivieren.
    🙂



  • Ok, aber da hätte ich dann ja das Problem, das alles und jeder auf meinen Ports rumschreiben kann oder wohl möglich noch andere Rechte bekommt, die mir am Ende mehr schaden als nützen.

    Kannst du mir trotzdem mal erklären, wie das z.B. bei WinIO mit dem CreateFile() funktioniert?
    Die schaffen es ja auch irgendwie, auf den Parallelport zuzugreifen, ohne dafür generell was an den Zugriffsrechten zu ändern, oder nicht?

    Mich würde halt interessieren, wie man von einem einfachen CreateFile() dazu kommt, dass Funktionen wie outportb(...) wieder auf den Port zugreifen können.

    Sry, dass ich dich da jetzt so mit Fragen überhäufe, aber ich kenne halt niemanden, der davon auch nur die leiseste Ahnung hat und du scheinst dich ja auszukennen mit sowas.
    Soweit jedenfalls schonmal vielen, vielen Dank für deine Mühe.



  • Sinthoras schrieb:

    Ok, aber da hätte ich dann ja das Problem, das alles und jeder auf meinen Ports rumschreiben kann oder wohl möglich noch andere Rechte bekommt, die mir am Ende mehr schaden als nützen.

    naja, kommt drauf an.
    die manipulation mit 'ZwSetInformationProcess' gilt nur für den prozess, der es auch aufgerufen hat und er muss mit admin-rechten laufen. anderen prozessen, auch solchen mit admin-rechten, wird weiterhin der zugriff auf die hardware verwehrt.

    Sinthoras schrieb:

    Kannst du mir trotzdem mal erklären, wie das z.B. bei WinIO mit dem CreateFile() funktioniert?
    Die schaffen es ja auch irgendwie, auf den Parallelport zuzugreifen, ohne dafür generell was an den Zugriffsrechten zu ändern, oder nicht?
    Mich würde halt interessieren, wie man von einem einfachen CreateFile() dazu kommt, dass Funktionen wie outportb(...) wieder auf den Port zugreifen können.

    die meisten davon installieren ein kernel-modul, das man mit CreateFile öffnen kann und darüber werden die hardware zugriffe gemacht. das geht erstmal wesentlich langsamer, weil das usermode-programm für jede kleine aktion mit dem kernel-modul kommunizieren muss und ist u.u. sicherheitstechnisch bedenklicher als der trick mit der undokumentierten native-api funktion.

    Sinthoras schrieb:

    Soweit jedenfalls schonmal vielen, vielen Dank für deine Mühe.

    no problem 🙂



  • Ok, danke.

    Ich schaue morgen mal, was ich im DDK darüber so finde und dann melde ich mich wieder.
    Mich würde halt interessieren, wie man das selbst realisieren kann, so ein Kernel-Modul zu installieren (und zu benutzen).
    Mal schauen, was das DDK dazu hergibt.

    Gute Nacht.



  • Hm, Microsoft wollte, dass ich mich registriere und dann sollte ich mich auch noch "um ein Programm bewerben"?!?
    Ich glaub', ich spinne!

    Bekomme ich das DDK (meinetwegen auch ein älteres) denn nicht auch irgendwo anders her?



  • Ok, also an das DDK scheine ich wohl nicht ranzukommen 😞

    Kann mir denn jemand sagen, wie ich so einen einfachen Treiber selbst realisieren kann?
    Denn darum geht es mir ja.

    Ich möchte nur D0 bis D7 einzeln aktivieren und deaktivieren können, mehr erstmal nicht.
    Min Problem ist halt, dass ich bei WinIO zwar allerlei Funktionen sehe, aber nicht erkennen kann, wo denn jetzt wirklich der Zugriff geregelt wird.

    Wie geht sowas?



  • Sinthoras schrieb:

    Ok, also an das DDK scheine ich wohl nicht ranzukommen 😞

    Doch, das ganze heisst jetzt KMDF... und darin ist das DDK drin...
    http://www.microsoft.com/whdc/driver/wdf/KMDF.mspx
    Und das KMDF gehört zum WDK welches Du hier bekommst:
    http://www.microsoft.com/whdc/DevTools/WDK/betawdk.mspx



  • Ja, da habe ich mich registriert und konnte mich nur um ein Projekt "bewerben".
    Mit einfach so runterladen war da nichts...
    Das ist ja eben mein Problem.





  • Das KMDF gab es aber mal so direkt zum runterladen... kann sein, dass MS dies wieder geändert hat... aber es scheint ja noch so, dass das ISO ein "älteren" Version noch verfügbar ist 😉



  • Danke.

    Edit: Ok, der Download zieht sich hin.
    Ich werde mich wohl erst morgen wieder melden.

    Edit: Bzw dann, wenn ich Zeit dafür gefunden habe und mich etwas reinarbeiten konnte.


Anmelden zum Antworten