Le lecteur aura compris ce qui précède, cette étape du projet est en cours de réalisation. Toutefois, il me semble important d’expliquer les enjeux techniques de ce qui est déjà fait et de ce qui le sera.
L’accès au matériel sous Windows NT ne peut se faire qu’à partir de la couche Kernel du système. Par contre les applications, elles, ne fonctionnent que dans la couche User. Il faut donc définir une interface de communication entre ces deux couches de sorte que les applications puissent accéder aux données du matériel.
Si les couches User et Kernel sont complémentaires pour former le système d’exploitation tel qu’on le connaît, elles sont également totalement hétérogènes de part leur aspect fonctionnel: alors que la première s’attache à réaliser les opérations liées à l’utilisation de l’ordinateur (gestion de l’interface, des fichiers...), la seconde travaille à son fonctionnement interne. C’est par conséquent au niveau du Kernel que l’imposant ouvrage de communication sécurisée et distribuée doit s’exécuter.
Pour créer un exécutable du Kernel NT, le programmeur a à sa disposition le DDK (Driver Development Kit). Cet ensemble de documentation et d’outils constituent le strict nécessaire logiciel. Toutefois, une fois le driver écrit, il faut encore le tester. Pour cela, un deuxième ordinateur relié au premier soit par réseau, soit par liaison série s’impose: il joue le rôle de station de débuggage. Ainsi, et seulement de cette façon, est-il possible d’inspecter les réactions du système vis à vis du programme testé.
Les étapes de réalisation d’un driver NT sont les suivantes:
Ma conception générale divise donc le driver en deux modules distincts:
En ce qui concerne les interfaces de programmations, je renvoie le lecteur aux annexes où il trouvera les références de celles-ci. En effet, je pense plus intéressant de discuter ici de la technique de configuration du driver. J’ai choisi de suivre la méthode désormais standard sous Windows NT, de sauvegarde d’information concernant le système. Elle consiste à utiliser ce que l’on appelle le « Registre du système ». Il s’agit d’une mini-base de données regroupant la configuration de la machine mais aussi les données propres à la personnalisation des utilisateurs. Chaque type d’information y est sauvegardé sous une des clés prédéfinies. Celle qui nous intéresse concerne la configuration système. Mais voyons les possibilités en détail.
La configuration de la carte DAS, effectuée lors de l'installation du driver, est enregistrée au niveau du registre système sous la clé: "das node"\Parameters dans le HKEY_LOCAL_MACHINE
par défaut
L'architecture des cartes DAS-160x permet de faire fonctionner jusqu'à deux cartes à la fois. Par conséquent, il est nécessaire de différencier les paramètres des différentes cartes. Ceci est réalisé à l'aide d'une clé supplémentaire \Device%n% où %n% correspond au numéro de la carte configurée: 0 ou 1. Les configurations possibles sont donc:
soit
soit
Pour chacune des cartes, les paramètres reconnus sont (indifféremment sous \Parameters\Device0 ou \Parameters\Device1):
