Quelqu'un sait-il des moyens de partiellement ou l'automatisation complète l'installation de test pilote? Strong> p>
Je suis nouveau au développement du pilote et je suis utilisé 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 em> » 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 en cours d'initialisation ... Argh. p>
Après avoir répété ce nombre de processus, 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 utiliser pour exécuter leur pilote dans un environnement de test? P>
Remarque, cela ne concerne pas les pilotes tests unitaires, je n'ai pas à ce stade encore 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. P>
5 Réponses :
Suivez le conseil que j'ai donné ici . Fondamentalement, testez le moins possible avec le système réel. P>
Dans votre cas, j'ai un autre conseil: Virtual PC utilise un disque dur virtuel (c'est probablement un fichier sur votre disque dur réel). P>
Vous n'avez pas besoin d'installer votre pilote, vous pouvez simplement remplacer les nouveaux fichiers sur le disque dur virtuel. Ceci n'est souvent pas possible dans le système d'exécution, mais dans un système virtuel, vous pouvez ouvrir le fichier de disque virtuel et le modifier (car Windows ne verrouille pas les fichiers de celui-ci). P>
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 . P>
Vous pouvez écrire des scripts shell (à l'aide de SC.EXE et DEVCON.EXE) pour automatiser les tâches de déploiement (aucun gestionnaire de périphériques d'ouverture, en cliquant sur les boutons, etc.). Et faire un instantané du système prêt à déboguer (il n'est pas nécessaire d'attendre le démarrage du système).
N'oubliez pas de vérifier votre pilote avec DriverVerififier! P>
Exemple de mon propre script :) P> >
sc create FsFilter type= filesys binPath= c:\FSFilterDrv.sys sc start FsFilter pause sc stop FsFilter sc delete FsFilter
Tout dépend un peu sur quel type de pilote vous écrivez. Mais dans de nombreux cas, écrire un matrice approprié (ou quelque chose de similaire) qui gère l'installation du pilote, le démarrage / arrêt et le lancement d'un harnais de test peut déjà être assez bon. P>
Je configure également toutes mes machines de test pour connecter automatiquement (AutoadminLogon), des lecteurs net de carte et lancez une invite de commande appropriée après le démarrage. Exécuter un test spécifique est alors une question de taper dans une seule commande uniquement. P>
Un mot concernant VirtualPC: VirtualPC est très pratique pour le développement en mode noyau, mais n'oubliez pas qu'il émule une machine uniprocesseur uniquement - assurez-vous également de tester régulièrement le code sur une machine multiprocesseur. Cela dit, l'astuce VHD peut sembler utile, mais cela vous attache quelque peu sur PC virtuel - écrire des scripts appropriés qui fonctionnent également sur VirtualPC, comme sur une vraie machine, semble donc une meilleure approche de moi. P>
Enfin, considérez-le comme un bouchon sans vergogne, mais si vous recherchez une structure de test d'unités pour le code de mode Windows Kernel, j'ai écrit un: CFIX . P>
Je pense que l'utilitaire DevCon (décrit dans Cet article en ligne OSR ) va vous aider. Vous devriez être capable de configurer des fichiers par lots qui font le travail en un clic. P>
Il est libre de vous inscrire à OsronLine.com, et vous devrez probablement vous inscrire pour arriver à 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. P>
Il me semble qu'un logiciel de virtualisation + a " Objets faux " (superposition) approche (Comme suggéré par Aaron Digulla) + scripts (comme suggéré par Sergius) peut simplifier le développement du pilote de périphérique. P>
Mais si vous utilisez Visual Studio pour développer des applications au niveau de l'utilisateur, vous pouvez également l'utiliser pour le développement du pilote de périphérique de noyau avec VisualDDDK (+ VirtualKD pour le débogage sur un tube nommé, qui est plus rapide que sur un port COM virtuel) , qui aborde spécifiquement les ennuis que vous mentionnez; De sa page d'accueil: P>
... ce projet apporte la simplicité et commodité d'application Windows Développement au développement du conducteur monde. Plus de création manuelle de Construire des scripts, la copie du pilote fichiers, l'installation des pilotes de fichiers INF, commutation entre Windbg et le éditeur source ou attendre des secondes Après chaque étape en raison de l'extra-lent port COM virtuel. Il suffit de créer un pilote Projet utilisant un pilote pratique Magicien, sélectionnez une machine virtuelle et profiter de débogage de votre pilote directement de Visual Studio. veux tester un monnaie? Il suffit d'appuyer normalement sur Shift-F5, modifier votre pilote, reconstruire et lancement à nouveau fort>. VisualDDK déchargera l'ancien pilote, installez le nouveau et le charger automatiquement et rapidement. Ennuyé avec des fichiers de symbole de chargement de Windbg pendant quelques minutes et regarder des symboles pour secondes? Il suffit de laisser VisualDDK optimize ceci pour vous utilisant son propre dia-basique Moteur de symboles. En utilisant c ++ / stlport dans vos pilotes? VisualDDK va nativement visualiser tous les conteneurs stl et les cordes, aussi bien que le studio visuel pour les applications en mode utilisateur. ... p> blockQuote>