Zitat von
Borti:
dass ich meinen PC, Windows oder sonstiges schrotten?
Deinen PC? Sehr gering. Das Problem dabei ist, dass du dir bei jeder Variable, die du verwendest, Gedanken machen musst, wo diese gespeichert werden soll. Also nix mit Variable deklarieren und verwenden, sondern du musst entscheiden, ob sie in einem Speicherbereich liegen darf, der ausgelasgert werden kann, oder ob sie unbedingt in dem vor Auslagerung geschützten Speicherbereich liegt, welcher aber natürlich nur recht begrenzt groß ist - und dein Treiber ist nicht der Einzigste, der Speicher braucht. Wolltest du im Rahmen einer Interrupt Service Routine (ISR) auf eine Variable zugreifen, die in einem ausgelagerten Speicherbereich liegt, dann passiert (zumindest unter NTff) Folgendes: Dein System präsentiert dir einen wunderbaren Systemaufhänger im blauen Gewand - einen Systemstop.
Das passiert bei den meisten Fehlern bei Treibern. Während bei "normalen" Anwendungen Programme sich bei Fehlern recht unproblematisch mit Exceptions oder Laufzeitfehlern melden, wirst du bei Treibern nicht um einen Systemneustart drumrumkommen. Der Grund ist, dass Usermode-Prozesse mit eingeschränkten Rechten laufen, Kernelmode-Prozessen vertraut das System allerdings uneingeschränkt. Bis du also einen funktionierenden Treiber hast, wirst du wohl viele Systemstopps erleben
Ich hab deinen Link angekuckt, interessante Sache, das ist wohl eine grafische Entwicklungsumgebung, mit der man sich einfacher Treiber basteln kann. Aber mit dem
DDK meinte ich das
DDK von Microsoft. Andere Produkte werden wohl auf diesem aufsetzen.