Frage

In meinem manager.exe, ich versuche, die CPU-Auslastung meines worker.exe zu ändern, die durch meine service.exe gestartet wird. Service.exe läuft unter dem Systemkonto, während manager.exe wird unter dem in Benutzerkonto angemeldet läuft.

Wenn ich Open in manager.exe mit worker.exe PID aufrufen, bekomme ich NULL für procHandle:

GRIFF procHandle = Open (PROCESS_SET_INFORMATION, 0, pid);

Mit GetLastError () Ich sehe, dass ich einen Fehler Zugriff verweigert hätte.

Alle Möglichkeiten, um dies? Kann ich worker.exe irgendwie ändern andere Prozesse die volle Kontrolle über sich selbst zu gewähren?

War es hilfreich?

Lösung

Sie sollten nicht auf Anruf OpenProcess haben.

Der Dienst sollte bereits eine Voll Erlaubnis Handle für die Arbeiter aus, wenn es aufgerufen CreateProcessAsUser oder CreateProcessWithLogonW. Verwenden DuplicateHandle eine Version des Griffs geeignet für die Verwendung durch den Manager-Prozess zu machen, und hat dann den Dienst senden, dass Griff an den Manager. Der Dienst hat bereits einen Griff an den Manager, nicht wahr? Es sei darauf müssen für DuplicateHandle.

Oder der Manager den Dienst bitten, den Arbeitsprozess zu ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top