OVH Cloud OVH Cloud

problème avec le sous système DOS 16 bits

2 réponses
Avatar
Philippe
Bonjour.

Je suis sous W2000 pro SP4, avec tous les patchs de s=E9cu.
J'ai un probl=E8me pour faire tourner certaines applications
qui lancent une fen=EAtre d'=E9mulation DOS.
Windows me dit:
System\CurrentControlSet\Control\VirtualDeviceDrivers VDD.
Le format du pilote de p=E9riph=E9rique virtuel dans le
registre n'est pas valide.=20

Je ne peux que faire Fermer, sinon =E7a continue =E0 planter.

Apr=E8s avoir =E9pluch=E9 Google pendant pas mal de temps je sais
que cette erreur correspondrait =E0 un probl=E8me avec le sous
syst=E8me DOS de Win 2000, qui serait d=FB =E0 des clefs
"corrompues" de la base de registre. J'ai tout v=E9rifi=E9,
corrig=E9 toutes les clefs mentionn=E9es... Je ne comprends
pas, =E7a ne marche toujours pas.

Quelqu'un aurait-il une id=E9e s'il vous plait?
En vous remerciant par avance.

--
Philippe

2 réponses

Avatar
Jean-Claude BELLAMY
Dans le message 150301c3dfbc$07d80870$,
Philippe s'est ainsi exprimé :

Bonjour.

Je suis sous W2000 pro SP4, avec tous les patchs de sécu.
J'ai un problème pour faire tourner certaines applications
qui lancent une fenêtre d'émulation DOS.
Windows me dit:
SystemCurrentControlSetControlVirtualDeviceDrivers VDD.
Le format du pilote de périphérique virtuel dans le
registre n'est pas valide.

Je ne peux que faire Fermer, sinon ça continue à planter.

Après avoir épluché Google pendant pas mal de temps je sais
que cette erreur correspondrait à un problème avec le sous
système DOS de Win 2000, qui serait dû à des clefs
"corrompues" de la base de registre. J'ai tout vérifié,
corrigé toutes les clefs mentionnées... Je ne comprends
pas, ça ne marche toujours pas.

Quelqu'un aurait-il une idée s'il vous plait?


Les VDD (et leurs erreurs associées) constituent un domaine très "exotique"
de Windows ! ;+)

Un VDD est une DLL 32-bits qui tourne en mode user.
Il transforme toutes les requêtes de programmes MS-DOS (interruptions de bas
niveau - p.ex. int13h, int2Fh,... - , interdites en mode user par NT) en
appels en mode kernel. Il peut être appelé :

- soit directement par une appli DOS modifiée,
qui fera appel aux fonctions "DispatchCall",
"RegisterModule" et "UnRegisterModule"

- soit indirectement par la machine virtuelle DOS lancée par NTVDM,
qui intercepte les accès périphériques de l'appli DOS et les
redirige vers les fonctions "callback" du VDD.

Dans ce cas, le VDD doit être déclaré explicitement dans la BDR :
HKLMSYSTEMCurrentControlSetControlVirtualDeviceDrivers.
entrée "VDD" (type REG_MULTI_SZ)
valeur : <chemin complet VDD1.DLL>0<chemin complet VDD2.DLL>0......00

(les "0" intermédiaires sont les terminateurs habituels
de toute chaine ASCIIZ, et le dernier "0" indique la fin
de l'entrée MULTI_SZ)

Ces drivers - non Microsoft - sont installés par certaines applications très
spéciales faisant appel à des modules 16 bits (c'est TRÈS RARE)

L'erreur peut survenir si le driver ou l'appli 16 bits est défecteuse, non
compatible avec Windows.
Par exemple un "command.com" corrompu.
Cela peut être du aussi à un contenu "foireux" de l'entrée.
(normalement elle est VIDE, mais il peut "trainer" p.ex. un caractère
"exotique", j'ai déjà vu le cas)

Pour résoudre ce pb, MS préconise (article 254914) de SUPPRIMER puis RECRÉER
l'entrée VDD (avec un contenu VIDE, qui est sa valeur originale)

NB: sous NT4 et W2K, une entrée REG_MULTI_SZ se crée ou modifie à l'aide de
REGEDT32, et non pas REGEDIT.

Si l'erreur persiste, c'est que :

- la clef a mal été modifiée
(il traine encore un ou plusieurs octets invalides)
Dans ce cas, la supprimer, puis la recréer
(en la laissant vide)

- il manque réellement un VDD, non trouvé,
et/ou l'appli DOS ne peut PAS tourner sous NT!


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Avatar
GG [MVP]
Un VDD est une DLL 32-bits qui tourne en mode user.
Il transforme toutes les requêtes de programmes MS-DOS (interruptions
de bas niveau - p.ex. int13h, int2Fh,... - , interdites en mode user
par NT)


Pas tout a fait DPMI fonctionne encore bien, du moins sous NT.
Et que je sache NT contient encore un serveur DPMI.
Pour plus de précision, un peu d'histoire aussi :
http://gilisa.free.fr/outils/dpmi/index.htm
--
Cordialement.
GG. [MVP]
http://gilisa.assysm.com
Le savoir vivre sur les news Microsoft
http://minilien.com/?0KfnHmgAde