Génération

Saisie et vérification syntaxique

Visual c++ est utilisé pour la saisie de votre driver. Ouvrez votre espace de travail (workspace) par le menu File/Open workspace ou File/Recent workspace, en sélectionnant le nom de votre ensemble de driver(s)

wpe1A.gif (25837 octets)

Sélectionner l'onglet Fileview, le projet actif (menu contextuel bouton droit de la souris/ set active project)

Double cliquez sur les fichiers que vous voulez éditer, le dossier External Dependencies (généré après compilation) vous donne accès aux fichiers includes sans passer par le menu File/Open. Saisissez votre source dans la fenêtre de droite.

Vous pouvez vérifier si votre source est compilable en le sélectionnant dans la partie gauche et par le menu droit en lancant la compilation. Vous pouvez également lancer la compilation simultanée de tous les sources par le menu build nom_driver.exe. Ne vous inquiétez pas des erreurs en édition des liens. En effet, dans l'état actuel de nos connaissance, visual c++ ne peut être utilisé pour générer le driver. Même la compilation produit des objets dans un sous-répertoire debug qui ne sera pas exploité dans la génération.

Nous n'avons pas réussi à intégrer l'aide du ddk sous visual c++. Pour avoir des informations sur une des fonctions du ddk vous devez ouvrir le menu démarrer... DDK Help

wpe1B.gif (5532 octets)

wpe1C.gif (16191 octets)

Vous pouvez chercher votre fonction dans l'arborescence "Entire Contents" ou appeller "Query" par le menu contextuel et taper le nom de la fonction que vous cherchez.

Génération du driver

Le driver est généré sous fenêtre dos. Comme des variables d'envirronement sont à initialiser il vaut mieux utiliser le menu menuddk.gif (5532 octets)

bulletChecked Build Environment pour une génération avec les options pour le debugger activée
bulletFree Build Environment pour la génération finale

puis lancer la commande build

wpe1D.gif (10639 octets)

Etapes de la génération :

bulletBuild calcul les dépendances. Il a parfois du mal à étudier les dépendances des fichiers systèmes (ex ddk.h) mais ce n'est pas grave, car ils ne changent pas en principe. Certains fichiers doivent aussi se terminer sans return, car il y a souvent des warnings sans gravité.
bulletBuild -z est une version réduite qui saute la phase de ré analyse (à utiliser si vous n'avez changé aucun .h) 
bulletEnsuite il lance le make, qui va lancer la compilation des sources modifiés (ou les includes dont ils dépendent) depuis la dernière génération. Je rappelle que les compilations sous visual ne comptent pas. Les objets générés ici le sont dans le sous répertoire obj\i386.
bulletL'édition des liens génère le driver dans ddk\lib\i386\free|checked sous le nom nom_driver.sys
bulletTransférer le driver sous c:\winnt\system32\driver

Structure d'un driver

 

Accueil ] Remonter ]