Une configuration supplémentaire est-elle nécessaire avant de pouvoir définir les priorités de thread dans un service Windows?La définition d'une priorité de thread dans un service n'a aucun effet.
Dans mon service, j'ai quelques threads qui appellent chacun la fonction CreateProcess()
pour lancer une application externe. Je voudrais ajuster les priorités de thread (ou de processus) à normal
ou lower
, en fonction d'autres facteurs.
Le problème est que la fonction SetThreadPriority()
échoue avec une erreur 6 (handle invalide?). Je passe dans un handle obtenu à partir de PROCESS_INFORMATION::hThread
(après avoir appelé le CreateProcess()
bien sûr), donc je pense que le handle devrait être valide.
J'ai également essayé de définir la priorité sur les processus en utilisant la fonction SetPriorityClass()
, qui échoue également.
Le service a ouvert une session en tant qu'utilisateur local.
C'est possible. J'essaye de passer dans un SECURITY_DESCRIPTOR à CreateProcess() dans l'espoir que je puisse obtenir un accès complet, mais cela ne semble pas avoir d'effet, car j'obtiens toujours une erreur 6 et les priorités ne sont pas changées. Je peux faire quelque chose de mal en réglant cela. – dennisV
Oui, c'était ça. Merci! – dennisV