Establecer una prioridad de hilo en un servicio no tiene efecto [cerrado]
-
04-07-2019 - |
Pregunta
¿Se necesita alguna configuración adicional antes de poder establecer prioridades de subprocesos en un servicio de Windows?
En mi servicio, tengo algunos hilos que llaman a la función CreateProcess ()
para iniciar una aplicación externa. Me gustaría ajustar las prioridades de los hilos (o proceso) a normal
o inferior
, dependiendo de algunos otros factores.
El problema es que la función SetThreadPriority ()
falla con un error 6 (¿identificador no válido?). Estoy pasando un identificador obtenido de PROCESS_INFORMATION :: hThread
(después de llamar al CreateProcess ()
por supuesto), así que creo que el identificador debería ser válido.
También he intentado establecer la prioridad en los procesos mediante la función SetPriorityClass ()
, que también falla.
El servicio ha iniciado sesión como usuario local.
Solución
¿Quizás no tiene los derechos de acceso correctos? MSDN en SetThreadPriority dice:
hThread [in] Un identificador para el hilo cuyo valor de prioridad se debe establecer.
El mango debe tener el THREAD_SET_INFORMATION o Acceso a THREAD_SET_LIMITED_INFORMATION Correcto. Para más información, ver Seguridad de subprocesos y derechos de acceso.
Windows Server 2003 y Windows XP / 2000: El mango debe tener el THREAD_SET_INFORMATION acceso a la derecha.