C# - Treiber-Entwicklung?
Bevor ich springe kopfüber in C#...
Habe ich immer das Gefühl, dass C oder vielleicht C++, das beste für die Entwicklung von Treibern unter Windows. Ich bin nicht scharf auf die Idee der Entwicklung eines Treibers auf einem .NET Maschine.
Aber .NETTO scheint der Weg von MS ist die Bezeichnung für Anwendungen, Entwicklung, und so bin ich jetzt Fragen:
- Sind Menschen, die mithilfe von C# zu entwickeln Treiber?
- Tun Sie haben zu tun eine Menge von API-hooks, oder ist C# die Einrichtungen zur Schnittstelle mit dem kernel ohne viel Hack?
- Kann jeder sprechen, um die Zuverlässigkeit und Sicherheit der Ausführung eines C# - Programms näher zu Ring 0, als es normalerweise der Fall sein?
Ich soll meine Geräte verwendbar ist Sie in C#, und wenn die Treiber-dev in C# ist reif, dass ist offensichtlich der Weg zu gehen, aber ich will nicht zu verbringen eine Menge Aufwand, wenn er nicht empfohlen wird.
- Was sind einige gute Ressourcen, um zu beginnen, sagen, entwickeln eines einfachen virtuellen seriellen port-Treiber?
-Adam
Ich bezweifle, dass wir sehen managed code Treiber, bis das OS ist gebaut auf der Oberseite des Rahmens - das ist derzeit nicht der Fall
InformationsquelleAutor Adam Davis | 2008-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht machen, kernel-Modus-Gerätetreiber in C#, da die Laufzeit kann nicht sicher geladen in ring0 und funktionieren wie erwartet.
Zusätzlich, C# erstellt keine Binärdateien geeignet zum laden als Gerätetreiber, insbesondere in Bezug auf Eintrag Punkte, die Treiber müssen verfügbar zu machen. Die Abhängigkeit von der Laufzeit zu springen und zu analysieren und JIT der binären während der Beladung verbietet den direkten Zugriff auf das driver-subsystem geladen werden müssen der binäre.
Es ist Arbeit im Gange, allerdings heben einige Treiber in den user-Modus können Sie sehen, ein interview hier mit Peter Wieland von der UDMF (User Mode Driver Framework) - team.
Benutzer-Modus-Treiber wäre viel besser geeignet für die gelungen Arbeit, aber Sie haben, um google ein bisschen, um herauszufinden, ob C# - und .NET werden direkt unterstützt. Alles was ich weiß ist, dass kernel-level-Treiber sind nicht machbar in nur C#.
Können Sie jedoch wahrscheinlich eine C/C++ Treiber-und ein C# - Dienst (oder ähnlich) und haben den Fahrer reden, um die verwalteten code, wenn Sie unbedingt haben, viel zu schreiben von code in C#.
InformationsquelleAutor Lasse Vågsæther Karlsen
Diese soll Ihnen helfen, in einer Weise: Windows-Driver-Kit
InformationsquelleAutor daddz
Es ist nicht die direkte Antwort auf deine Frage aber falls du Interesse hast könnte man auf Singularity-Projekt.
InformationsquelleAutor Mladen Janković
C# läuft in die .NET Virtual Machine, Sie können sich nicht bewegen es näher zu "Ring 0" als die VM, und die VM läuft im userspace.
InformationsquelleAutor FlySwat
Wenn Sie bereit sind, zu einem gehen an ein proprietäres framework, Jungo den WinDriver toolkit unterstützt user-mode driver Entwicklung (auch in managed code) für USB -, PCI -, und PCI-E-Geräte.
InformationsquelleAutor Jeffrey Hantin
Microsoft hat eine Reihe von Forschungsprojekten im Bereich der mit einer managed-code, der OS, mit anderen Worten töten mit Win32-API.
Mary Jo Foleys Artikel: Wiederaufbau-ein Vermächtnis
InformationsquelleAutor Robert Gatliff
Schreiben von Gerätetreibern .net macht kein Sinn für aktuelle Versionen von windows.
<Spekulation>
Gerüchte, dass MS ist investieren eine Menge Geld bringen Singularität auf die nächste Ebene. Schauen Sie einfach nach Midori. Aber das ist 2015+
</Spekulation>
InformationsquelleAutor Thomas Danecker
Wenn ich es richtig erinnere, die Dokan-Projekt ist ein Benutzer-Modus-Dateisystem-Treiber, die auch erlaubt .NET-code ausgeführt werden, indem ein system-Treiber: https://github.com/dokan-dev/dokan-dotnet.
So, Sie könnten entwickeln Sie eine C# - "Treiber" (user-mode-Anwendung wirklich), die dann angerufen/aufgerufen von einem C++ - kernel-Modus-Treiber. Der kernel-Treiber konnte pass einfach alles zusammen ohne Manipulation der Daten und handeln als einen einfachen wrapper.
Unnötig zu erwähnen, dass es ist sehr unsicher, und Sie würden wahrscheinlich am Ende mit einem BSOD (ich versuchte es).
Mild im Zusammenhang:
Den Kosmos-Projekt ist ein open-source-Betriebssystem, die in C# entwickelt und läuft
"(kernel -) Treiber" und " user-level-Anwendungen vollständig in C geschrieben#/F#/VB.NET/...
Obwohl diese technisch kernel-level-Treiber, der OS ist nicht mehr Windows, sondern Ihre eigene, so dass ich denke, dass dies ist nicht die richtige Antwort ......
InformationsquelleAutor Unknown6656