Italia
Foro

Basispriorität und das Privileg SeIncreaseBasePriorityPrivil

 
Hallo Profaner...

Welche Rückmeldungen liefert folgender Quelltext unter XP???
KompilierenMarkierenSeparieren
Def @SetPriorityClass(2) !"KERNEL32","SetPriorityClass"
DEF @FormatMessage(7) !"KERNEL32","FormatMessageA"
DEf @GetLastError(0) !"KERNEL32","GetLastError"
Def @GetCurrentProcess(0) !"KERNEL32","GetCurrentProcess"
DEf @SetLastError(1) !"KERNEL32","SetLastError"
Def GetPriorityClass(1) !"KERNEL32","GetPriorityClass"
DEF SetThreadPriority(2) !"KERNEL32","SetThreadPriority"
DEF GetCurrentThread(0) !"KERNEL32","GetCurrentThread"
DEF GetThreadPriority(1) !"KERNEL32","GetThreadPriority"
Declare GETERROR_Buffer#,Fehler&,PHandle&,THandle&

PROC LastError

    Parameters Rückgabe&
    Declare GETERROR_Buffer$
    DIM GETERROR_Buffer#,32000
    @FormatMessage($1000,0,Rückgabe&,0,GETERROR_Buffer#,32000,0)
    Let GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
    Dispose GETERROR_Buffer#
    Return GETERROR_Buffer$

Endproc

Windowstyle 31
Windowtitle "Priorität setzen"
Window 0,0-640,440
Addstring "Priorität des Prozesses="
ADDSTRING " Priorität vorher: "+@str$(GetPriorityClass(GetCurrentProcess()))
@SetLastError(0)
LET PHANDLE&=@GetCurrentProcess()
LET FEHLER&=@SetPriorityClass(PHANDLE&,$100)
LastError @GetLastError()
ADDSTRING " Rückmeldung SetPriorityClass: "+@STR$(Fehler&)
ADDSTRING " Priorität jetzt: "+@str$(GetPriorityClass(GetCurrentProcess()))
ADDSTRING " "+@$(0)
Addstring "Priorität des Threads="
ADDSTRING " Priorität vorher: "+@str$(GetThreadPriority(GetCurrentThread()))
@SetLastError(0)
LET THANDLE&=@GetCurrentThread()
LET FEHLER&=@SetThreadPriority(THANDLE&,$F)
LastError @GetLastError()
ADDSTRING " Rückmeldung SetThreadPriority: "+@STR$(Fehler&)
ADDSTRING " Priorität jetzt: "+@str$(GetThreadPriority(GetCurrentThread()))
ADDSTRING " "+@$(0)
@EDITBOX("Rückgaben",1)

While 0=0

    Waitinput

Wend


PS: Für die die sich nicht auskennen -> Code ist wegen Waitinput trotz $100 bei SetPriorityClass unbedenklich...
Ich erhöhe hier vor allen Dingen mit SetPriorityClass die Priorität des aktuellen Prozeses und damit auch die Zeit, die einem einzelnen Prozess (eigentlich Thread) zum Durchführen von Berechnungen zur Verfügung steht. Da hier Waitinput eingebaut ist und sonst keine Aktionen erfolgen, wird der Boost dieses Prozesses nicht aumento und das System bleibt stabil.
 
08.10.2005  
 




Torsten
Rümker

KompilierenMarkierenSeparieren
Windows XP Pro

Ich hoffe das hilft
MfG
Torsten Rümker
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
08.10.2005  
 



Besten Dank Torsten, hat geholfen - jetzt sehe ich klarer...
 
08.10.2005  
 




Michael
Wodrich
Selbes Ergebnis bei XP Home
KompilierenMarkierenSeparieren
Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
08.10.2005  
 



OK, was undokumentiertes:
Das Privileg SeIncreaseBasePriority schränkt die API API SetPriorityClass ein.
SetPriorityClass ist dabei nicht auf die Aktivierung des Privilegs angewiesen, sondern aktiviert dieses selbst - es muß also nur vorhanden sein.
Fehlt das angesprochene Privileg, kann die REALTIME_PRIORITY_CLASS ($100) nicht vergeben werden. Wird versucht diese Priorität zu vergeben, wird die Priorität auf den dann höchsten Wert ($80) HIGH_PRIORITY_CLASS gesetzt. Eine Rückmeldung circa evtl. nicht vorhandene Rechte erfolgt nicht.

Diese Aussage ist nirgendwo sonst im Netz dokumentiert, und ich will hoffen, daß diese Stelle gut aufgehoben und gepflegt wird!

Die API SetThreadPriority wird nicht durch das Privileg eingeschränkt, obwohl diese API ebenfalls zum Setzen der Basispriorität beiträgt!
 
08.10.2005  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.238 Views

Untitledvor 0 min.
E.T.10.11.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie