Mise à jour des pilotes UMDF au cours du développement
Question
J'ai quelques problèmes de mise à jour des pilotes UMDF en utilisant « devcon » au cours d'une cycle standard de code deploy-debug. Le problème est que « la mise à jour devcon » n'est pas la mise à jour vraiment quoi que ce soit à moins que le numéro de version ou la date de la DLL fichier et le fichier INF a changé de ce qui est stocké dans le pilote du système dossier cache. Après une série affolant d'expériences que j'ai découvert que une façon de forcer la chose à utiliser les derniers fichiers est en faisant le suivant:
- Modifier les paramètres passés à « Stampinf.exe » dans « makefile.inc » par définissant explicitement une version avec l'option "-v".
- Modifier la
fichier script de ressources ( « DRIVER_NAME.rc ») d'abord définir
VER_USE_OTHER_MAJOR_MINOR_VER
avant d'inclure «ntverp.h
» puis définir explicitementVER_PRODUCTMAJORVERSION
etVER_PRODUCTMINORVERSION
. vous aurez Notez que ce système ne permet pas nous de changer la construction et la numéros de révision. Sur ce Win7 semble être fixé à 7600 et 16385 dans "ntverp.h
". Est-ce par la conception?
Alors, je suis Modify « makefile.inc » et réglez l'option « -v » à quelque chose comme
« 1.1.7600.16385 » incrémenter manuellement la version mineure pour chaque
construire et modifier le fichier RC et mettre à jour avec VER_PRODUCTMINORVERSION
le même nombre.
Par ailleurs, si je cours sous le compte SYSTEM une invite de commande et d'aller supprimez le dossier cache du pilote dans "C: \ windows \ system32 \ DriverStore \ FileRepository \ DRIVER FOLDER" avant en cours d'exécution « devcon », puis qui fonctionne aussi.
Maintenant, je pense que je manque quelque chose assez basique comme cela semble être une façon assez pénible de le faire. S'il vous plaît aider! Merci!
La solution
Pourquoi ne pas débrancher tout l'appareil et remplacer la DLL déchargée? Vous ne devriez pas avoir besoin de réinstaller le pilote, il suffit de remplacer le module. Notez que vous ne devriez pas le faire pendant la production ou tout ce qui a à voir avec les clients, mais si vous écrivez un pilote, juste claquer dans le nouveau module avec le même numéro de version.
Win7 cela semble être fixé à 7600 et 16385 dans « ntverp.h ». Est-ce par la conception?
Oui, au moins jusqu'à ce que le prochain service pack
Autres conseils
Comme Paul Betts a suggéré ci-dessus, la voie à suivre semble être simplement remplacer directement la UMDF DLL dans le dossier du pilote (par exemple c:\windows\system32\drivers\umdf\
) après la désactivation du dispositif soit dans le gestionnaire de périphériques ou en utilisant « devcon ». J'avais posé cette question sur des pilotes de périphériques de Microsoft newsgroup avant de poster ici, mais ne l'avais pas obtenu une réponse satisfaisante - mais certaines personnes a fini par répondre il après J'ai posté ici! Donc, je vais mettre un lien vers ce poste ainsi: