Windows DDK: was damit anfangen?
-
Ich habe WinDDK installiert (1,7 GB!). Dort ist ein Help Verzeichnis, doch alles scheint für Allerkenner sein. Ich habe keine Ahnung, wie ein Beispielprojekt kompilieren und unter Debugger anschauen. Es geht um hclient Projekt aus HID (USB), also kein Treiber in Ring 0 oder ähnliches.
Wer kann mir helfen?
Danke.
-
spertulo schrieb:
Ich habe WinDDK installiert (1,7 GB!). Dort ist ein Help Verzeichnis, doch alles scheint für Allerkenner sein. Ich habe keine Ahnung, wie ein Beispielprojekt kompilieren und unter Debugger anschauen. Es geht um hclient Projekt aus HID (USB), also kein Treiber in Ring 0 oder ähnliches.
Wer kann mir helfen?
Danke.Es ist wichtig zu verstehen, dass das Programmieren von Kernel Mode Treibern sich dramatisch vom normalen Applikationsprogrammieren unterscheidet. Du kannst nicht einfach mal nen 15 zeiligen Code scheiben und den dann per einmal-mausklick ausprobieren. Du brauchst jede menge Erfahrungen über dein OS und sehr viel Zeit und Nerven (und am besten einen zweiten PC zum debuggen, wenn du nicht alle 2 sekunden deines Tages den Rechner neu starten willst).
Wenn du doch mal loslegen willst und dein Englisch aufbessern willst:
http://www.codeproject.com/KB/system/driverdev.aspx
-
Die Tutorials dieser Serie - siehe Link - kann ich dir nur empfehlen. Sie sind zwar echt sehr langsam durch zu arbeiten aber vom Potential doch sehr hoch. Alternativ solltest duch auch in der MSDN bzw auf den MS Seiten was finden.
Lg Tobi
-
Das letzte mal als ich DDK drauf hatte hatte man im Startmenü nen Menüpunkt der ne cmdline aufmachte.
Darin konnte man einfach zum Beispiel navigieren und mit nmake das Beispiel builden
-
Leute, bitte erst lesen, dann denken, dann posten. Der OP schreibt:
spertulo schrieb:
Es geht um hclient Projekt aus HID (USB), also kein Treiber in Ring 0 oder ähnliches.
Falls es immer noch nicht verstanden ist: ES GEHT NICHT UM TREIBER!
AP0LL0 schrieb:
Es ist wichtig zu verstehen, dass das Programmieren von Kernel Mode Treibern sich dramatisch vom normalen Applikationsprogrammieren unterscheidet
Das ist zwar richtig, aber wer zum Teufel will das wissen?
Zum Probelm: Das Sample kompiliert bestens so, wie es da ist. Erstelle ein neues leeres Win32-Projekt und füge die Header, Source-Files und das Resource File dem Projekt hinzu. Stelle dann das Projekt von UNICODE auf MultiByte um und füge in den Linker-Einstellungen die SetupAPI.lib und die hid.lib hinzu. Das ist bereits alles, F7 erledigt den Rest.
Dabei gehe ich natürlich davon aus, dass Du Include-Pfad und Library-Pfad in Deiner Umgebung bereits hinzugefügt hast, z.B.:
- Include
<WinDDKdir>\7600.16385.0\inc\api
- Library
<WinDDKdir>\7600.16385.0\lib\wxp\i386
-
Mox schrieb:
Zum Probelm: Das Sample kompiliert bestens so, wie es da ist. Erstelle ein neues leeres Win32-Projekt und füge die Header, Source-Files und das Resource File dem Projekt hinzu. Stelle dann das Projekt von UNICODE auf MultiByte um und füge in den Linker-Einstellungen die SetupAPI.lib und die hid.lib hinzu. Das ist bereits alles, F7 erledigt den Rest.
Dabei gehe ich natürlich davon aus, dass Du Include-Pfad und Library-Pfad in Deiner Umgebung bereits hinzugefügt hast, z.B.:
- Include
<WinDDKdir>\7600.16385.0\inc\api
- Library
<WinDDKdir>\7600.16385.0\lib\wxp\i386Erstellen ein neues Win32-Projekt - in welcher Umgebung? Reicht VS 2008 C++ Express Edition?
-
Es reicht sogar der DDK-Compiler. Wenn du ein Sample bauen willst mach über den Startmenu-Eintrag den DDK-Command-Prompt auf, wechsel in das entsprechende Verzeichnis und gib "build" ein. Ferdich.
Wenn es um 08/15 Usermode Code geht kannst du auch gerne Visual C++ 2008 Express verwenden. (Bei Kernelmode wäre es eher angesagt den DDK Compiler zu verwenden, aber darum geht's hier ja nicht unbedingt)