Für das Erstellen der mitgelieferten Treiber und Applikationen ist das WDK demnach völlig ausreichend. Ein separater C-Compiler oder ein Visual Studio sind hierfür nicht notwendig. Für das Schreiben von eigenem Quellcode und die Fehlersuche kann deshalb auch ein Shareware-Tool wie Programmer’s Notepad eingesetzt werden. Für die Entwicklung von Anwenderprogrammen oder auch für DDLs wird jedoch ein üblicher Compiler benötigt.
Im Verzeichnis KMDF sind die Beispiele für das Kernel Mode Driver Framework abgelegt. Zum großen Teil handelt es sich dabei um bereits bekannte Beispiele, die aus der Umsetzung verschiedener WDM-Projekte resultieren. Als Einstieg empfiehlt sich das Studium der Echo-Applikation, die ein Gerät simuliert, auf das I/OAnfragen abgesetzt werden. Bei anderen KMDF-Beispielen, die tatsächlich auf Hardware zugreifen, wird diese vorausgesetzt, was bedeutet, dass ein OSR USB FX2-Kit für die beiden USB-Beispiele notwendig ist und ein 9656-Lite-Board der Firma PLX oder eine 82557/82558-Netzwerkkkarte der Firma Intel oder ein PCI Matchmaker S5935DK der Firma AMCC für die PCI-Bus-Applikation. Hier hätte man sich einfachere und auch aktuellere Beispiele, etwa für PCI Express, gewünscht, zumal die Firma AMCC das angegebene Kit (mit zusätzlicher ISAKarte!) bereits seit über zehn Jahren nicht mehr herstellt und sich aus dem Geschäft der PCI-Bus-Controller seit geraumer Zeit komplett zurückgezogen hat.
Selbstverständlich finden sich im WDK auch Beispiele für das User Mode Driver Framework (UMDF), wobei diese als Pre-Release ausschließlich für Windows Server 2008 spezifiziert sind. Außerdem ist die Dokumentation hierzu unvollständig, so dass diese Beispiele nur bedingt für den UMDF-Einstieg geeignet sind. Gleichwohl bietet das WDK nicht nur für KMDF-Treiber, die lediglich einen kleinen Anteil an der mitgelieferten Software ausmachen, einen praktikablen Einstieg in die Programmierung, sondern es ist generell eine gute Ausgangsbasis für die Realisierung unterschiedlicher Windows-Treiber. jk
Literatur
[1] Dembowski, K.: Das Addison-Wesley Handbuch der Hardwareprogrammierung. Addison-Wesley, 2006.
[2] Orwick, P.; Smith, G.: Developing Drivers with the Windows Driver Foundation. Microsoft Press, 2007.
[3] Microsoft: www.microsoft.com/whdc/devtools/default.mspx
Neu ist, dass die Informationsdatei für Kernel-Mode-Treiber mit in den Compilierungsvorgang zur Erzeugung der SYS-Datei einbezogen wird, die somit auch explizit für eine bestimmte Einheit vorgesehen ist. In der „Sources“-Datei werden hierfür zwei zusätzliche Einträge (INF_NAME und MISCFILES) vorgenommen. Als Vorlage dient eine Datei mit der Endung inx, die beim Compilieren des Treibers angepasst und ergänzt wird, damit sie anschließend im Ausgabeverzeichnis als (mehr oder weniger) fertige INF-Datei vorliegt.
Als weitere Neuerung gilt bei den INF-Dateien für Kernel-Mode-Treiber, dass diese für die korrekte Funktion auf dem Zielsystem einen „Windows Driver Foundation Co-Installer“ benötigen (Listing). Mithilfe eines Co-Installer werden generell Optionen für spezielle Geräte oder auch Geräteklassen installiert, in diesem Fall eben für Kernel-Mode-Treiber. Die verschiedenen Co-Installer (DLLs) sind in einzelnen Verzeichnissen (amd64, ia64, x86) unter WinDDK\6001\redist\wdf lokalisiert. Je nach zu verwendender Plattform ist die passende Co-Installer-DLL (manuell) in das jeweilige Installationsverzeichnis, in dem sich die erstellte SYS- und die dazugehörige INF-Datei befinden, zu kopieren.