"QueryDosDevice failed" NERO - Como deshabilitar dispositivos desde la linea
de comandos
-
Antecedentes del Problema
-
En ciertas combinaciones de hardware, al arrancar cualquier producto Nero de
la version 6 y anterior a la version 6.3.0.0 daba un problema con la
wnaspi32.dll del propio Nero y la aplicacion no arrancaba. Desde la version
6.3.0.0, en las maquinas en que sucedía dicho problema, saca una ventana con
el mensaje "QueryDosDevicd failed", y el producto Nero arranca sin "ver" las
grabadoras.
Investigando en Google, no veo documentado este problema. Puesto al habla
con el fabricante, me solicita unas imagenes de las pantallas y sigue sin
solucionar el problema. Igualmente reviso la funcion QueryDosDevice la cual
pertenece al API de windows y probandola mediante un vbs no se recibe de
ella ningun codigo de retorno que no esté documentado, por lo cual se deduce
que el problema está en el propio Nero, en la forma de llamar o tratar a
dicha funcion, y en combinacion con hardware especifico ya que sucede en muy
pocas maquinas.
Investigando en dichas maquinas, -en las cuales el problema sucede en
instalacion limpia del sistema + Nero, lo unico que se ve en comun entre
ellas es que tienen muchas unidades de medios removibles USB (ZIP 100, >IP
250, USB Pen, lectores de tarjetas de memoria USB, etc...). Igualmente se
comprueba que desenchufando todos los dispositivos USB de medios removibles
funciona. Enchufando uno a uno, deja de funcionar y no hay uno de ellos que
sea responsable en particular de la situacion. Se cambia todo el hardware
USB y sigue pasando por lo que parece una incompatiblidad por mal
tratamiento de los codigos de retorno de la funcion QueryDosDevide por parte
de Nero.
Soluciones
-
O bien, desconectar los dispositivos de medios removibles para usar Nero, o
bien desactivarlos desde el Administrador de dispositivos.
En cualquier caso, es una incomodiad ambas cosas. La segunda, pasaría por
una alternativa: si pudiesemos crearnos un enlace directo a "algo" que nos
desactivase los dispositivos que quisiesemos sin necesidad de ir uno por uno
en el Administrador de dispositivos, podriamos hacerlo, arrancar Nero, y
posteriormente con otro acceso directo, vilver a activar los dispositivos.
DEVCON - Utilidad de comando de linea
Existe una herramienta de Microsoft, que permite ver, activar, desactivar
(tanto en local como en maquinas remotas de las cuales seamos
administradores) documentado en este articulo:
http://support.microsoft.com/defaul...-us;311272
Del link anterior, nos podemos bajar el programa devcon (solo funciona en 32
bits, no funciona en el XP de 64 bits tal y como documenta el articulo).
La sintaxis del comando, basicamente consiste (para nuestras necesidates)
en:
devcon disable CLAVE_DEL_REGISTRO_A_DESACTIVAR
devcon enable CLAVE_DEL_REGISTRO_A_ACTIVAR
Las claves del registro, son las que definen el dispositivo correspondiente
en HKEY_LOCAL_MACHINE\CurrentControlSet\ENUM.
Pero... el propio comando nos da una facilidad para no tener que localizar
una a una las claves en el registro y además el evitar la posibilidad de
confusiones de donde debe apuntar dicha clave. De una manera sencilla, en el
propio Administrador de dispositvos, si pinchamos cualquier dispositivo con
el boton derecho, propiedades, y pinchamos la pestaña de "detalles", podemos
ver la clave completa que cuelga de
HKEY_LOCAL_MACHINE\CurrentControlSet\ENUM.
El texto: HKEY_LOCAL_MACHINE\CurrentControlSet\ENUM podemos sustituirlo en
el comando "devcon" por una @. Por tanto, sería:
devcon disable @lo_que_se_ve_en_pestaña_detalle
De esta manera "casi" tenemos solucionado el problema. Digo "casi",
porque aparece un problema añadido: la mayoria de los dispositivos tiene un
"and" (un "&") en su descripcion, y windows entiende el & como un
concatenador de comandos y no como como un simbolo. Pero el propio windows
nos da la solucion: simplemente añadiendo a cualquier simbolo reservado (y
el & lo és), el caracter "^" por delante, lo tomará como literal en la
cadena y no como conatenador de comandos en este caso.
Por tanto, imaginemos que tenemos un dispositivo que lo vemos en la pestaña
detalles del Administrador de dispositivos como:
USB\VID_0C76&PID_0005\6&38F94657&0&3
La manera de desactivarlo, sería entonces:
devcon disable @USB\VID_0C76^&PID_0005\6^&38F94657^&0^&3
(fijarse en el caracter "^" antes de cada "&")
Con esto, ya estamos en disposicion de crearnos un fichero .bat para
desactivar los dispositivos que queramos y otro para activarlos. Con un
simple enlace directo a dicha bateria o fichero BAT quedaria solucionado el
problema.
Jose Manuel Tella Llop
MVP - Windows
jmtella@XXXcompuserve.com (quitar XXX)
http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.
Leer las respuestas