Hallo,
Ich werde meine Treiber wie normale Tasks behandeln und in Ring3 laufen lassen. Grundlegende Geräte wie DMA/FDD/HDD werden von nativen Kerneltreibern übernommen, die in Ring0 laufen.
Außerdem überlege ich, Schnittstellentreiber (COM/...) ebenso nativ im Kernel einzubauen und auf Ring0 laufen zu lassen. Neue Treiber, beispielsweise für Drucker, müssten dann nichtmehr direkt die Ports ansprechen (was sie auch nicht können), sondern nurnoch mit den Schnittstellen-Treibern arbeiten, genauso wie FS-Treiber mit den nativen Medientreibern (FDD/HDD/...) laufen.
Sollte trotzdem ein Gerät/Treiber direkt über einen Port kommunizieren, so muss dies über die API und den Kernel abgehandelt werden, wobei ich auch dort Mechanismen einbauen will, die das Übertragen vereinfachen.
Gruß,
Joachim