Pregunta

En mi manager.exe, estoy tratando de cambiar el uso de la CPU de mi worker.exe, que se inicia por mi service.exe. Service.exe se ejecuta bajo la cuenta del sistema, mientras que manager.exe se está ejecutando bajo el registrado en la cuenta del usuario.

Cuando llamo OpenProcess en manager.exe con PID de worker.exe, consigo NULL para procHandle:

HANDLE procHandle = OpenProcess (PROCESS_SET_INFORMATION, 0, pid);

El uso de GetLastError () Veo que tengo un error de acceso denegado.

Cualquier maneras de evitar esto? ¿Hay algún modo modificar worker.exe a conceder a otros procesos de control total sobre sí misma?

¿Fue útil?

Solución

Usted no debería tener que OpenProcess llamada.

El servicio ya debería tener un mango todo el permiso para que el trabajador cuando se llama CreateProcessAsUser o CreateProcessWithLogonW. Uso DuplicateHandle para hacer una versión de ese mango adecuado para su uso por el proceso del gestor, y luego tener el servicio de envío de la manilla para el gerente. El servicio ya tiene un identificador para el gerente, ¿verdad? Será necesario que, para DuplicateHandle.

O es que el gestor de pedir el servicio para cambiar el proceso de trabajo.

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