Tengo una computadora portátil de 6 años con las siguientes especificaciones:
Sistema operativo: Windows 8.1 Pro de 64 bits (6.3, compilación 9600)
Marca y modelo: SAMSUNG 770Z5E/780Z5E
Procesador: CPU Intel(R) Core(TM) i7-3635QM a 2,40 GHz
RAM: 8GB
Últimamente parece haber un proceso que hace que la computadora portátil se caliente y haga que los ventiladores zumben como locos. He tenido este proceso y el software (utilidad del mouse Logitech) durante más de 3 años. Los únicos cambios en el sistema han sido las actualizaciones de Windows, que aplico una vez por trimestre. Hace más de un año que no se instala nada.
El proceso es LogiOptionsMgr.exe. Tan pronto como lo apago, la computadora portátil se calma en 30 segundos. Lo extraño es que el proceso solo afirma estar usando <1% de CPU y Filemon no registra IO (disco, registro, red, etc.).
Todo lo que veo va en contra de lo que sé sobre computadoras. Si la utilización del proceso muestra <1%, eso no debería ser una causa para que la computadora portátil se comporte así. Y en cualquier caso, el proceso no parece estar haciendo nada según Filemon. Nuevamente, elimínelo y la computadora portátil volverá a la normalidad.
¿Qué podría estar pasando?
Respuesta1
Entonces, después de las instrucciones de Mokubai, resulta que el software Switchable Graphics de AMD estaba detectando erróneamente el software Logitech como una aplicación que exigía que mi tarjeta gráfica 3D se activara con configuraciones de alto rendimiento.
Mi computadora portátil tiene gráficos Intel integrados y también la serie AMD Radeon 9700. Creé perfiles de aplicaciones dentro del software AMD Catalyst para tratar explícitamente todo el software de Logitech como uno que intenta optimizar la duración de la batería sobre el rendimiento. Parece haberlo hecho. Este fallo se produjo después de una actualización de Windows, así que no sé a quién culpar realmente.
Respuesta2
Incluso después de migrar LogiOptionsMgr.exe
a la iGPU, seguirá consumiendo una cierta cantidad de vatios. A continuación te mostraré cómo reducir la factura de la luz eliminando por completo el problema.
Nota:Eresno es el unico con esto problema(más de 10.000 (aproximadamente 34.557) personasen total):
- ¿Por qué
logioptionsmgr.exe
uso hasta el 30% de mi GPU NVIDIA GeForce RTX 3060 Ti (200 Watt) mientras está inactiva?- Soporte de Logitech: Opciones de Logitech con alta carga de GPU 8% de NVIDIA GeForce RTX 20?0 Super
- Soporte de Logitech:
LogiOptionsMgr.exe (UNICODE)
uso de GPU 2‑3 % de NVIDIA GeForce GTX 1070 (150 vatios)
- Software de mouse Logitech que utiliza potencia de GPU 5‑10 % de NVIDIA GeForce 970 GTX (145 vatios)
¿Alguien tiene problemas con el uso elevado de la CPU alLogioptions.exe
ejecutar?- ¡¡¡EL SOFTWARE DE OPCIONES DE Logitech ESTÁ consumiendo tu GPU!!! NVIDIA GeForce GTX 1070 (150 vatios); T con
LogiOptionsMgr.exe
(inactivo, carga): 53‑55°C, 82‑85°C; sin: 40°C, 70°C. 21% de NVIDIA Titan Xp (250 vatios). - Software Logitech *Advertencia* T con
LCore.exe
(inactivo): 50°C; sin: 30°C.
si abroHacker de procesosy agregue las columnas "GPU" y "bytes dedicados de GPU", luego, en mi caso, LogiOptionsMgr.exe
utiliza el 0,94% de la GPU (6,19% al mover cualquier ventana) y 1,14 MB.
Ahora intentemos localizar el problema (hilo, pila de llamadas):
- en Process Hacker: haga doble clic en
LogiOptionsMgr.exe
el proceso > en la ventana Propiedades: cambie a la pestaña Hilos - ordenar ▼ por columna de CPU
- intente suspender el hilo que utiliza la mayor cantidad de CPU: abra el menú contextual del hilo > elemento "Suspender"
- en la ventana principal de Process Hacker: la carga en la GPU debería desaparecer
en la pestaña Hilos: la fila del hilo se ha vuelto gris - ahora puedes mirar la pila de llamadas (haz doble clic en el hilo); en mi caso, la pila era así:
Nota:ignore los nombres de las0, ntdll.dll!NtWaitForSingleObject+0xa 1, KernelBase.dll!WaitForSingleObjectEx+0x9c 2, d3d9.dll!Direct3DCreate9+0x194fe 3, d3d9.dll!Direct3DCreate9Ex+0x17df 4, d3d9.dll!Direct3DCreate9Ex+0x1794 5, d3d9.dll!Direct3DShaderValidatorCreate9+0x1515b 6, d3d9.dll!Direct3DShaderValidatorCreate9+0x98aa 7, d3d9.dll!Direct3DShaderValidatorCreate9+0x167c0 8, d3d9.dll!DebugSetLevel+0x1584e 9, LogiOptionsMgr.exe+0xd4343 10, LogiOptionsMgr.exe+0x94947 11, LogiOptionsMgr.exe+0x1d6184 12, LogiOptionsMgr.exe+0x1dbae3 13, LogiOptionsMgr.exe+0x1dbc8a 14, kernel32.dll!BaseThreadInitThunk+0xd 15, ntdll.dll!RtlUserThreadStart+0x21
d3d9.dll
funciones por ahora; son inexactos (verá los nombres correctos a continuación).
A continuación, intentemos localizar el lugar problemático (n.º 9 en la pila de llamadas de arriba) en el LogiOptionsMgr.exe
código y solucionarlo nosotros mismos. Por cierto, la versión mía LogiOptionsMgr.exe
es la 3.20.35.no vulnerable.
Nota:recuerda que has suspendido un hilo de LogiOptionsMgr.exe
.
Necesitarás elx64dbgdepurador. Espero que tengas experiencia con él, si no, aquí tienes algunas configuraciones que te facilitarán el trabajo (menú Opciones > Preferencias):
- Eventospestaña > "Interrumpir en": anule la selección de todo esto (en el futuro, puede intentar habilitar "Punto de interrupción de entrada*" y "Adjuntar punto de interrupción")
- Excepcionespestaña: botón "Agregar rango" > inicio:,
00000000
fin:FFFFFFFF
Vamos a empezar:
- Menú Archivo >Adjuntar: seleccionar
LogiOptionsMgr.exe
y adjuntar - cargar símbolos para
d3d9.dll
(esto se hace solo una vez):- en la pestaña Símbolos: panel izquierdo > módulo "d3d9.dll" > menú contextual: "Descargar símbolos para este módulo"
- busque este lugar en el código del programa:
LogiOptionsMgr.exe+0xd4343
(#9 en la pila de llamadas de arriba):- cambie al hilo que suspendió anteriormente, en la pestaña Hilos (x64dbg):
- encuéntrelo
1
en la columna "Suspend Count" o en TID Process Hacker, dec → la columna "ID" x64dbg, hexadecimal - haga doble clic en él
- encuéntrelo
- estás en la parte superior de la pila; retrocede un poco:
- en la pestaña Pila de llamadas: menú contextual: "Mostrar marco de pila de llamadas sospechosas"
- en la columna Comentarios: busque "volver a logioptionsmgr.… de d3d9.…"
- haga doble clic en él
- en la pestaña CPU: desplácese hacia arribaENSAMBLEun poco para ver las instrucciones anteriores
- la
test
instrucción está seleccionada actualmente (en mi caso -test eax,eax
); arriba está lacall
instrucción (en mi caso -call qword ptr ds:[rax+3C8]
)
- la
- establezca un punto de interrupción en la
call
instrucción: haga clic en la • viñeta gris a la izquierda → se volverá roja - reanudar el hilo actual (suspendido) - en la pestaña Hilos: menú contextual del hilo: "Reanudar hilo"
- ahora en la pestaña CPU puedes ver el nombre real de la
d3d9.dll
función que se llama:qword [rax+3C8]=<d3d9.public: virtual long __cdecl CBaseDevice::PresentEx(…) __ptr64>
es decir, la pila de llamadas que se muestra arriba se ve así:- 0,
ntdll.dll!NtWaitForSingleObject+0xa
- 1,
KernelBase.dll!WaitForSingleObjectEx+0x9c
- 2,
d3d9.dll!CBaseDevice::AcquireWriteAccess
- 3,
d3d9.dll!CBaseDevice::UpdateRenderTarget
- 4,
d3d9.dll!CD3DBase::SetRenderTargetI
- 5,
d3d9.dll!CSwapChain::ResetRenderTargets
- 6,
d3d9.dll!CSwapChain::PresentMain
- 7,
d3d9.dll!CBaseDevice::PresentMain
- 8,
d3d9.dll!CBaseDevice::PresentEx
←PresentEx
←Present
-LogiOptionsMgr.exe
quierepresentemuéstranos algo... - 9,
LogiOptionsMgr.exe+0xd4343
- …
- 0,
- cambie al hilo que suspendió anteriormente, en la pestaña Hilos (x64dbg):
- Si recorres esta parte del programa en elModo "pasar por encima"F8, puedes darte cuenta de que este hilo gira en un bucle que comienza con
movzx eax,byte ptr ds:[rsi+38]
(casi inmediatamente despuéscall qword ptr ds:[<&NtUserShowWindow>]
ShowWindow
) y regresa al principio despuéscall qword ptr ds:[<&PeekMessageW>]
Al comienzo del ciclo está la condición de entrada/final del ciclo:
test al,al
jne logioptionsmgr.13F904520
- menú contextual: ensamblarspace
- reemplazar
jne
conje
… y reanudar la ejecución F9del programa, luego los recursos creados porCoInitialize
yDirect3DCreate9Ex
(ver arriba en el conjunto) se liberará correctamente, el hilo se cerrará y aparecerán los siguientes registros en la pestaña Registro (en el caso de GPU de NVIDIA):
DLL Unloaded: … nvd3dumx.dll
DLL Unloaded: … psapi.dll
Thread … exit
Nota:descargapsapi.dll
Es posible que haya insinuado que la configuración personal del mouse para aplicaciones dejará de funcionar (cambiará), sin embargo, la configuración personal aún funciona.
Antes de lanzar finalmente el parche, queda asegurarse de que funcione correctamente cuando LogiOptionsMgr.exe
se lance:
- preparación previa:
- guarde el parche - en la pestaña CPU: menú contextual de la vista asm: Parches Ctrl+ P: botón Exportar; en mi caso (para v3.20.35), obtuve el siguiente contenido del archivo de parche
LogiOptionsMgr.1337
:>logioptionsmgr.exe 00000000000D4317:85->84
- establecer un punto de interrupción en
call qword ptr ds:[<&NtUserShowWindow>]
(se mencionó anteriormente)
- guarde el parche - en la pestaña CPU: menú contextual de la vista asm: Parches Ctrl+ P: botón Exportar; en mi caso (para v3.20.35), obtuve el siguiente contenido del archivo de parche
- preparación:
- reinicie el
LogiOptionsMgr.exe
menú Depurar > Reiniciar Ctrl+F2 - después del reinicio, la ejecución del programa debería haberse detenido en y
call qword ptr ds:[<&NtUserShowWindow>]
, como puede ver, el parche (jne
→je
) no se aplicó automáticamente, así que aplíquelo manualmente - Ctrl+ P: botón Importar
- reinicie el
- controlarla ruta de ejecución del código (se debe omitir el bucle) — "Pasar por encima" F8(o"Se acabó la animación", o usarrastreo)
- reanudar la ejecución del programa — "Ejecutar" F9; la ruta de ejecución del código debe repetirse nuevamente:
- los recursos serán liberados
- El hilo terminará (saldrá)
- los registros correspondientes aparecerán en la pestaña Registro
Para enviar el parche, abra el cuadro de diálogo "Parches" Ctrl+ Pnuevamente: botón "Archivo de parche" (guarde temporalmente el parche LogiOptionsMgr.exe
en otra ubicación y luego reemplace el original).
No olvide desconectar el depurador (menú Archivo >Despegar), o finalizar inmediatamente el LogiOptionsMgr.exe
proceso (menú Depurar >Cerrar Alt+F2) antes de reemplazar el LogiOptionsMgr.exe
archivo.
Nota:Durante lo anterior, minidump\dump-*_*.dmp
podrían aparecer minivolcados en el directorio con LogiOptionsMgr.exe
: es seguro eliminarlos.
Nota:en el caso general, después de reemplazar LogiOptionsMgr.exe
, es mejor reiniciar su padre ( LogiOptions.exe
) cerrando sesión Ctrl+ Alt+ Delete, Alt+ L/ iniciando sesión.