Question

Quelqu'un sait-il des moyens d'automatiser partiellement ou totalement l'installation de test pilote?

Je suis nouveau au développement du pilote et je suis habitué à plus d'une approche axée sur des essais dans les langues de niveau supérieur, afin de passer au genre d'environnement où je ne peux pas tester facilement que je vais a été une étape pour moi. J'utilise Virtual PC pour mon environnement de test et actuellement pour le réinitialiser, le gestionnaire de périphériques ouvert, sélectionnez l'appareil, cliquer sur un tas de « Etes-vous vraiment sûr que vous pas plutôt installer un de ces pilotes système » boîtes de dialogue de type, puis finalement remis à zéro l'environnement de test lors du redémarrage WinDbg dans la machine hôte comme l'environnement de test est du démarrage ... argh.

Après avoir répété ce processus beaucoup, plusieurs fois déjà, sûrement il doit être une meilleure façon de le faire? Quels outils / méthodes / astuces ne développeurs de pilotes commerciaux utilisent pour exécuter leur pilote dans un environnement de test?

Remarque, cela ne concerne pas les pilotes de tests unitaires, je n'ai pas encore à ce stade ou savoir s'il est même possible. Ceci est à peu près la cuisson d'un environnement de test avec WinDbg attaché à faire en sorte que quelques petits changements je l'ai fait est en train de faire ce que je pense.

Était-ce utile?

La solution

Il me semble qu'un logiciel de virtualisation + un « objets fantaisie » approche (stratification) (comme suggéré par Aaron Digulla) + scripts (comme suggéré par Sergius) peut simplifier le développement du pilote de périphérique.

Mais si vous utilisez Visual Studio pour développer des applications de niveau utilisateur, vous pouvez l'utiliser pour le développement du pilote de périphérique du noyau aussi avec VisualDDK (+ VirtualKD pour déboguer sur un tube nommé, qui est plus rapide que sur un port COM virtuel) , qui traite spécifiquement les contrariétés que vous mentionnez; de sa page d'accueil:

  

... Ce projet apporte la simplicité et   commodité d'application Windows   développement au développement du pilote   monde. création Pas plus manuel   créer des scripts, la copie du pilote   fichiers, l'installation des pilotes de fichiers INF,   la commutation entre WinDbg et la   éditeur de code source ou en attente de secondes   après chaque étape en raison de l'extra-lent   port COM virtuel. Il suffit de créer un pilote   projet à l'aide d'un pilote pratique   Assistant, sélectionnez une machine virtuelle, et   profiter de débogage de votre pilote directement   à partir de Visual Studio. Vous voulez tester un   changement? Il suffit normalement appuyez sur Maj + F5,   modifier votre pilote, reconstruire et   lancer à nouveau . VisualDDK déchargera   l'ancien pilote, installer le nouveau   et le charger automatiquement et rapidement.   Lassé de fichiers de symboles de chargement WinDBg   pendant quelques minutes et à la recherche des symboles pour   secondes? Il suffit de laisser VisualDDK optimiser   pour vous en utilisant sa propre base DIA-   moteur de symbole. Utilisation de C ++ / STLPort dans   vos pilotes? VisualDDK sera nativement   visualiser tous les conteneurs STL et   cordes, aussi bien que le fait de Visual Studio   pour les applications en mode utilisateur. ...

Autres conseils

Vous pouvez écrire des scripts shell (en utilisant sc.exe et devcon.exe) pour automatiser les tâches de déploiement (pas de gestionnaire de dispositif d'ouverture, en cliquant sur les boutons, etc.). Et faire snapshot du système prêt à déboguer (pas besoin d'attendre pour le démarrage du système).

Ne pas oublier de vérifier votre pilote avec DriverVerifier!

Exemple de mon propre script:)

sc create FsFilter type= filesys binPath= c:\FSFilterDrv.sys
sc start FsFilter
pause
sc stop FsFilter
sc delete FsFilter

Suivez les conseils que j'ai . Fondamentalement, tester aussi peu que possible avec le système réel.

Dans votre cas, j'ai une autre astuce: Virtual PC utilise un disque dur virtuel (qui est probablement un fichier sur votre disque dur réel)

.

Vous n'avez pas besoin d'installer votre pilote, vous pouvez simplement remplacer les nouveaux fichiers sur le disque dur virtuel. Ceci est souvent impossible dans le système de fonctionnement, mais dans un système virtuel, vous pouvez ouvrir le fichier de disque virtuel et le modifier (car Windows ne verrouille les fichiers qu'il contient).

Je ne suis pas sûr de Virtual PC, mais d'autres émulateurs sont livrés avec des outils pour travailler avec des images de disque virtuel. Si VPC ne peut pas le faire, consultez VirtualBox .

Tout dépend un peu de quel type de pilote que vous écrivez. Mais dans de nombreux cas, écrire un makefile approprié (ou quelque chose de similaire) qui gère l'installation du pilote, marche / arrêt, et le lancement d'un harnais de test peut déjà être assez bon.

Je configure également toutes mes machines de test pour l'ouverture de session automatique (AutoAdminLogon), carte lecteurs net et lancer une invite de commande appropriée après le démarrage. L'exécution d'un test spécifique est alors une question de taper dans une commande unique.

Un mot au sujet VirtualPC: VirtualPC est très pratique pour le développement en mode noyau, mais ne pas oublier qu'il émule une machine monoprocesseur seulement - alors assurez-vous de tester régulièrement le code sur une machine multiprocesseur ainsi. Cela dit, l'astuce VHD peut sembler à portée de main, mais il lie un peu vous Virtual PC -. Écrire des scripts appropriés qui fonctionnent également sur VirtualPC comme sur une vraie machine semble donc une meilleure approche pour me

Enfin, pensez à une prise sans vergogne, mais si vous êtes à la recherche d'un cadre de tests unitaires pour le code en mode noyau de Windows, je l'ai écrit un: CFIX .

Je pense que l'utilitaire DevCon (décrit dans cet article en ligne OSR ) va vous aider. Vous devriez être en mesure de fichiers batch de configuration qui font le travail sur un seul clic.

Il est libre de signer avec osronline.com, et vous aurez probablement à vous inscrire pour se rendre à cet article. Et si vous écrivez des pilotes, vous voulez vous inscrire. Ces gars-là ont fait cela depuis longtemps, et il y a beaucoup de très bonnes informations sur ce site Web.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top