SetPriorityClass in Windows 7

Intrebari legate de programarea cu biblioteci precum MFC, ATL, WTL si GDI+.
Post Reply
mesajflaviu
Membru++
Membru++
Posts: 689
Joined: 10 Sep 2008, 21:40
Judet: Cluj

SetPriorityClass in Windows 7

Post by mesajflaviu » 13 Dec 2012, 18:05

As vrea sa va intreb ceva, poate ati mai dat peste aceasta problema: incerc sa setez cea mai inalta prioritate a unui proces pe un Windows 7, cont de administrator:

Code: Select all

HANDLE ProcessH = GetCurrentProcess();
SetPriorityClass(ProcessH, REALTIME_PRIORITY_CLASS);
TRACE("%d\n",GetPriorityClass(ProcessH));
raspuns: 256, adica pentru procesul ProcessH am valoarea REALTIME_PRIORITY_CLASS ...

daca nu sant pe cont de administrator, si execut acelasi cod, nu mai am acelasi raspuns, ci 128, adica nu mai pot seta REALTIME_PRIORITY_CLASS pentru procesul in cauza ... intrebarea e, se poate seta valoarea REALTIME_PRIORITY_CLASS in SetPriorityClass pentru un cont care nu este de administrator ?



mesajflaviu
Membru++
Membru++
Posts: 689
Joined: 10 Sep 2008, 21:40
Judet: Cluj

Re: SetPriorityClass in Windows 7

Post by mesajflaviu » 13 Dec 2012, 18:44

Sper sa pun mai incolo si o mica aplicatie de test ...

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: SetPriorityClass in Windows 7

Post by Ovidiu Cucu » 13 Dec 2012, 22:44

Se pare ca, by default, numai administratorii pot seta REALTIME_PRIORITY_CLASS.
Vezi ce spune Microsoft Support la PRB: Can't Increase Process Priority.

Din Control Panel, poti adauga useri sau grupuri care sa aiba acest drept in felul urmator (Windows 7):
  • Deschizi Local Group Policy Editor (din linia de comanda lansezi gpedit.msc).
  • Expandezi Computer Configuration / Windows Settings / Security Settings / Local Policies / User Rights Assignment
    Local Group Policy Editor.jpg
    Local Group Policy Editor.jpg (52.09 KiB) Viewed 2044 times
  • Click-click pe "Increase scheduling priority" apoi apesi "Add User or Group...".
  • Mai departe te descurci... :)
Vezi si TechNet Library: Increase scheduling priority

// De curiozitate: la ce-ti trebuie clasa se prioritate prioritate real-time?

mesajflaviu
Membru++
Membru++
Posts: 689
Joined: 10 Sep 2008, 21:40
Judet: Cluj

Re: SetPriorityClass in Windows 7

Post by mesajflaviu » 14 Dec 2012, 12:35

Dupa setarile facute, si pe contul de guest pot seta aceasta prioritate pentru aplicatie ... eu am primit o aplicatie de test, in care se seta prioritatea REALTIME_PRIORITY_CLASS pentru fereastra, si imi arata GUI-ul daca intradevar se intampla asta sau nu (printre alte lucruri) ... intradevar, in Windows 7, pe un cont care nu are drept de admin, nu se poate seta aceasta prioritate ... nu am acces la aplicatia reala, dar din cate am inteles, e vorba de un proces care aduce date de la o placa de achizitii de date de citire imagini ... daca procesul respectiv nu are prioritatea REALTIME_PRIORITY_CLASS, se pare ca imaginile nu vin corect ...

Acuma, nu stiu daca s-ar putea face aceasta setare programatic (cu cod), dar in mod sigur, chiar daca ar fi posibil, nu cred ca s-ar putea face asta din contul de guest ...

Post Reply