Durante una jornada de mantenimiento técnico en DOSCLIC con equipos de digitalización, me topé con un problema recurrente pero frustrante: el servicio de Adquisición de imágenes de Windows (WIA), identificado internamente como stisvc, se quedó completamente bloqueado. Cuando este servicio entra en un estado colgado, las aplicaciones de escaneo dejan de responder y las herramientas del sistema habituales no logran restablecerlo.
1. El intento estándar y la aparición del bloqueo
En circunstancias normales, el servicio WIA puede gestionarse mediante la consola gráfica services.msc o con órdenes sencillas de línea de comandos. Sin embargo, cuando el hilo del servicio se congela debido a una instrucción de lectura fallida o un controlador colgado, los comandos habituales se detienen por completo.
Al intentar detener el servicio con el comando tradicional en la consola de comandos:
net stop stisvcEl sistema devolvió inmediatamente la siguiente falla de control:
The service could not be controlled in its present state. More help is available by typing NET HELPMSG 2189.Para descartar un problema de permisos o de capa de comandos, intenté forzar el reinicio utilizando PowerShell con privilegios elevados:
Restart-Service -Name stisvc -ForceEl resultado fue una excepción ServiceCommandException similar:
Restart-Service : Service 'Windows Image Acquisition (WIA) (stisvc)' cannot be stopped due to the following error: Cannot stop stisvc service on computer '.'.
At line:1 char:1
+ Restart-Service -Name stisvc -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (System.ServiceProcess.ServiceController:ServiceController) [Restart-Service], ServiceCommandException
+ FullyQualifiedErrorId : CouldNotStopService,Microsoft.PowerShell.Commands.RestartServiceCommand2. Inspección del estado real del servicio
El código de error NET HELPMSG 2189 confirma que el servicio se encuentra en un estado ambiguo, generalmente en bucle entre STOP_PENDING o START_PENDING. Para confirmar este comportamiento, revisé la información extendida del proceso con la herramienta sc:
sc query stisvcCuando el valor de STATE muestra un estado pendiente de detención o inicio, el administrador de servicios de Windows se niega a enviar nuevas señales de control por vías convencionales para evitar la corrupción de memoria.
3. La solución: Forzar la finalización del proceso asignado (PID)
Dado que el administrador de servicios no puede detener la tarea de forma limpia, la vía efectiva consiste en localizar el identificador de proceso (PID) asociado al contenedor del servicio y terminarlo abruptamente.
Paso 1: Consultar el PID del servicio
Ejecuté la consulta extendida para obtener el PID actual:
sc queryex stisvcEn el bloque de información devuelto, ubiqué la línea marcada como PID (por ejemplo, 1234).
Paso 2: Matar el proceso atascado
Con el identificador a la mano, utilicé la herramienta taskkill con la marca de finalización forzada (/F):
taskkill /PID /F <PID> por el número obtenido en el paso anterior. El parámetro /F destruye el proceso de forma inmediata, liberando las mallas de memoria y puertos USB retenidos.Paso 3: Reiniciar el servicio WIA
Una vez destruido el proceso colgado, el estado en el administrador de servicios regresa automáticamente a STOPPED, permitiendo iniciarlo limpiamente:
net start stisvc4. Alternativas para lidiar con dependencias del servicio
En ocasiones, WIA no responde porque un servicio secundario bloquea su cierre. Para intentar cerrar la cadena completa de dependencias de forma directa, se puede pasar el argumento /y al detener el servicio:
net stop stisvc /y
net start stisvcCabe destacar que WIA depende fuertemente de servicios críticos del sistema como Llamada a procedimiento remoto (RPC) (rpcss) y Detección de hardware de Shell. Intentar detener rpcss directamente mediante net stop rpcss no está permitido por el propio kernel de Windows debido al riesgo de colapsar la sesión actual, por lo que la matanza selectiva por PID sigue siendo el camino más seguro.
5. Origen de la falla y medidas preventivas
Estos bloqueos en el servicio WIA suelen responder a tres causantes principales:
- Controladores obsoletos o corruptos: Incompatibilidades entre el kernel de Windows y el driver TWAIN/WIA del fabricante del escáner.
- Software propietario de digitalización: Módulos en segundo plano de marcas como HP, Epson o Canon que no liberan los recursos del escáner tras finalizar la captura.
- Inestabilidad en la conexión física: Microdesconexiones en puertos o cables USB que dejan las solicitudes I/O del servicio en espera infinita.
Asegurarse de mantener el tipo de inicio de WIA en Automático y utilizar controladores WHQL minimiza significativamente la frecuencia con la que el servicio se detiene.
La historia detrás de la nota
Aprender a forzar el cierre de servicios mediante `sc queryex` y `taskkill` evita tener que reiniciar estaciones de trabajo completas en entornos de producción, reduciendo el tiempo de inactividad durante tareas críticas de digitalización.