[TIP] "QueryDosDevice failed" NERO - Como deshabilitar dispositivos desde la linea de comandos

11/04/2005 - 16:12 por JM Tella Llop [MVP Windows] | Informe spam
"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

#1 Alezito [MS MVP]
11/04/2005 - 16:34 | Informe spam
Gracias, pasa a la cola de pendientes, a este ritmo no doy abasto '-)

Cordialmente,

Alejandro Curquejo
Microsoft MVP Windows

Microsoft TechNet
Recursos, Soporte y Comunidad TI
http://www.microsoft.com/spain/tech...efault.asp


"JM Tella Llop [MVP Windows]" wrote in message
news:
"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
(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.




Preguntas similares