Autor Beitrag
Sephiroth
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: Di 29.10.02 10:52 
Hallo Leute,

ich wollte mal wissen ob und wie es möglich ist einen eigenen Treiber zu schreiben. Kann mir jemand sagen wo ich da am besten Anfang sollte? Irgendwelche Hilfen/Tutorials?

Gedacht hatte ich da an das schreiben eines Druckertreibers oder so...

Bin über jede Antwort dankbar

Danke im Voraus
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 29.10.02 10:59 
Falsche Forum. :wink:

Mit Delphi brauchst du da erst gar nicht anfangen. Der Compiler kann keine Treiber kompilieren. Das geht nur mit Visual C.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 29.10.02 11:04 
Hi! :)

Das ist aber ein merkwürdiges Posting. Du hast an das Schreiben eines Druckertreibers, oder so, gedacht?

Wofür? Gibt es für deinen Drucker etwa keinen Druckertreiber?

Wie dem auch sei, so etwas erfordert sehr viel Wissen über die internen Abläufe in Windows. Das ist nicht direkt ein Delphi-spezifisches Problem, so ein Treiber wird meist nur irgendwelche APIs aufrufen. Ich wüsste jetzt aber nicht auf Anhieb, wie ich einen Drucker ansprechen sollte.
Am besten schaust du mal auf der MSDN-Seite vorbei, dort gibts ja geballte Ladung an Wissen.

Cu,
Udontknow
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 29.10.02 11:05 
@Luckie:

Treiber sind doch nur DLLs, die evtl noch zusätzlich registriert werden, oder liege ich da falsch?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 29.10.02 11:30 
Nicht ganz. Treiber werden anderst gelinkt vom Linker und dazu ist der Delphi Kompiler nicht in der Lage. Genauer hat sich nico dazu mal geäußert und bevor ich mich da verzettele Zitiere ich ihn mal besser:
Zitat:

Delphi ist ein Tool, dass dahingehend optimiert und entwickelt wurde, um schnellstmöglich Anwendungen für den Benutzermodus in Win32 (bevorzugt GUI) zu entwickeln.

Probleme:
- im Kernelmodus herrschen ganz andere Spielregeln,
- das Layout des resultierenden Images (PE/COFF-Format, kurz .exe und .dll) läßt sich beim Object Pascal Compiler/Linker nicht genügend beinflussen, um überhaupt erfolgreich vom Kernel akzeptiert zu werden
- Visual C++ ist die _einzige_ unterstützte Entwicklungsplattform für Anwendungen im Kernel-Modus...
- es gibt also folglich keine Units dafür und Du kannst bei 0 (nichts, nada, nil) mit reinem Assembler anfangen (sonst bekommst Du nichtmal die Init-Callback-Funktion hin), kein Speicher-Manager, keine Compiler-Magic, _keine_ Win32 API-Funktionen...
- ...selbst wenn sich jemand die Arbeit macht das Device Driver Kit (DDK) nach Object Pascal zu 'übersetzen', wird er feststellen, das selbige Sprache einige Features nicht hat, die dort ausgiebig benutzt werden ( z.B. Makros, 'fastcall' (Microsoft-spezifische Aufrufkonvention, vergleichbar mit 'register' in Pascal) und Unions (bedingt übersetzbar) ... )

Das waren nur die gröbsten technischen Probleme.
Alleine die Einarbeitung in das Thema Treiberentwicklung erfordert einen nicht zu unterschätzenden Aufwand. Den obigen Postings ist zu entnehmen, dass selbiges Verständnis noch nicht vorhanden ist...

...insofern rate ich davon ab, zu versuchen mit Delphi (mal eben) einen Treiber zu schreiben.
Das haben andere schon getan, es reicht aber nicht zu mehr als: 'hm, geht mit viel Arbeit + HexEditor, aber macht irgendwie keinen Sinn'.

Ich hoffe das war deutlich genug. Dem interessierten Entwickler sei passende Lektüre (mind. DDK) empfohlen.

- nico


Alle Klarheiten beseitigt?
patrick
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: Mi 30.10.02 18:46 
:shock: :shock: :shock: :shock: uuuuuuiiiiiiiii
da hast du aber was vor dir. wenn es sich um eine fremde hardware handelt die du nicht selbst gebaut hast oder wenigstens nicht nen detailierte anleitung zum aufbau hast. bist du schon auf verlohrenen posten.
und selbst wenn :hair: :?

pass saumäsig auf das kann nämlich mächtig in die hose gehen da du unter umständen ein gesamten win-Kernel zerschießen kannst

also für ne saloppe frage "wie mach ich n treiber" ist das thema zu umfangreich, kopliziert und zu gefährlich!

mal davon abgesehen das man mit delphi keine treiber erstellen kann :twisted:

CU

_________________
Patrick
im zweifelsfall immer das richtige tun!!!