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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top