- 16.06.2017
- 4 minute de citit
-
-
t
-
D
-
n
-
T
-
In acest articol
Incepand cu Windows 8.1, driverele pot utiliza rutinele Ex Xxx Timer pentru a gestiona temporizatoarele de inalta rezolutie. Precizia unui temporizator de inalta rezolutie este limitata doar de rezolutia maxima acceptata a ceasului sistemului. In schimb, temporizatoarele limitate la rezolutia implicita a ceasului sistemului sunt semnificativ mai putin precise.
Cu toate acestea, temporizatoarele de inalta rezolutie necesita intreruperi ale ceasului de sistem pentru – cel putin, temporar – sa apara la o rata mai mare, ceea ce tinde sa creasca consumul de energie. Astfel, soferii ar trebui sa foloseasca temporizatoare de inalta rezolutie numai atunci cand precizia temporizatorului este esentiala si sa utilizeze temporizatoare de rezolutie implicita in toate celelalte cazuri.
Pentru a crea un temporizator de inalta rezolutie, un driver WDM apeleaza rutina ExAllocateTimer si seteaza semnalizatorul EX_TIMER_HIGH_RESOLUTION in parametrul Atribute . Cand soferul apeleaza rutina ExSetTimer pentru a seta temporizatorul de inalta rezolutie, sistemul de operare mareste rezolutia ceasului sistemului, dupa cum este necesar, astfel incat momentele la care expira temporizatorul sa corespunda mai precis cu timpul de expirare nominal specificat in DueTime si parametrii de perioada .
Un driver Kernel-Mode Driver Framework (KMDF) poate apela metoda WdfTimerCreate pentru a crea un temporizator de inalta rezolutie. In acest apel, driverul trece un pointer catre o structura WDF_TIMER_CONFIG ca parametru. Pentru a crea un temporizator de inalta rezolutie, driverul seteaza membrul UseHighResolutionTimer al acestei structuri la TRUE . Acest membru face parte din structura incepand cu Windows 8.1 si KMDF versiunea 1.13.
Controlul preciziei temporizatorului
De exemplu, pentru Windows care ruleaza pe un procesor x86, intervalul implicit dintre bifarile ceasului sistemului este de obicei de aproximativ 15 milisecunde, iar intervalul minim dintre bifarile ceasului sistemului este de aproximativ 1 milisecunda. Astfel, timpul de expirare al unui temporizator de rezolutie implicita (pe care il creeaza ExAllocateTimer daca semnalizatorul EX_TIMER_HIGH_RESOLUTION nu este setat) poate fi controlat numai in decurs de aproximativ 15 milisecunde, dar timpul de expirare al unui temporizator de inalta rezolutie poate fi controlat intr-o milisecunda. .
Daca un driver specifica un timp de expirare relativ pentru un temporizator de rezolutie implicita, acesta poate expira cu aproximativ 15 milisecunde mai devreme sau mai tarziu decat timpul de expirare specificat. Daca un driver specifica un timp de expirare relativ pentru un temporizator de inalta rezolutie, acesta poate expira la o milisecunda dupa timpul de expirare specificat, dar nu expira niciodata mai devreme. Pentru mai multe informatii despre relatia dintre rezolutia ceasului sistemului si precizia temporizatorului, consultati Acuratetea temporizatorului.
Daca nu sunt setate temporizatoare de inalta rezolutie, sistemul de operare ruleaza de obicei ceasul sistemului la rata implicita. Cu toate acestea, daca sunt setate unul sau mai multe temporizatoare de inalta rezolutie, este posibil ca sistemul de operare sa fie necesar sa ruleze ceasul sistemului la rata maxima pentru cel putin o parte a timpului inainte de expirarea acestor temporizatoare.
Pentru a evita cresterea inutila a consumului de energie, sistemul de operare ruleaza ceasul sistemului la rata maxima numai atunci cand este necesar pentru a satisface cerintele de sincronizare ale temporizatoarelor de inalta rezolutie. De exemplu, daca un temporizator de inalta rezolutie este periodic, iar perioada acestuia acopera mai multe bifari de ceas implicite ale sistemului, sistemul de operare ar putea rula ceasul sistemului la rata maxima numai in partea din perioada de timp care precede imediat fiecare expirare. Pentru restul perioadei de temporizare, ceasul sistemului functioneaza la rata implicita.
Pentru a preveni consumul excesiv de energie, soferii ar trebui sa evite setarea perioadei unui cronometru de inalta rezolutie de lunga durata la o valoare mai mica decat intervalul implicit dintre bifarile ceasului sistemului. In caz contrar, sistemul de operare este fortat sa ruleze continuu ceasul sistemului la viteza maxima.
Incepand cu Windows 8, un driver poate apela rutina ExQueryTimerResolution pentru a obtine gama de rezolutii de timer care sunt acceptate de ceasul sistemului.
Comparatie cu ExSetTimerResolution
Incepand cu Windows 2000, un driver poate apela rutina ExSetTimerResolution pentru a modifica intervalul de timp dintre intreruperile succesive ale ceasului sistemului. De exemplu, un sofer poate apela aceasta rutina pentru a schimba ceasul sistemului de la rata implicita la rata maxima pentru a imbunatati precizia temporizatorului. Cu toate acestea, utilizarea ExSetTimerResolution are mai multe dezavantaje in comparatie cu utilizarea cronometrelor de inalta rezolutie create de ExAllocateTimer .
First, after calling ExSetTimerResolution to temporarily increase the system clock rate, a driver must call ExSetTimerResolution a second time to restore the system clock to its default rate. Otherwise, the system clock timer continuously generates interrupts at the maximum rate, which might cause excessive power consumption.
Second, a driver that uses the ExSetTimerResolution routine cannot optimize its temporary use of higher system clock rates as effectively as the operating system does for high-resolution timers. Thus, the system clock spends more time running at the maximum rate than is strictly necessary.
Third, if multiple drivers concurrently use ExSetTimerResolution to improve timer accuracy, the system clock might run at its maximum rate for long periods. In contrast, the operating system globally coordinates the operation of multiple high-resolution timers so that the system clock runs at the maximum rate only when necessary to meet the timing requirements of these timers.
Finally, using ExSetTimerResolution is inherently less accurate than using a high-resolution timer. After a driver calls ExSetTimerResolution to increase the system clock to its maximum rate, which is typically about a tick per millisecond, the driver might call a routine such as KeSetTimerEx to set the timer. If, in this call, the driver specifies a relative expiration time, the timer can expire up to about a millisecond earlier than or later than the specified expiration time. However, if a relative expiration time is specified for a high-resolution timer, the timer can expire up to about a millisecond later than the specified expiration time but it never expires early.
porno sardegna porno isabella
jeshbyjesh porno italia cento per cento
video sesso malena porno italia malena
amatoriale porno moglie porno italia xxx
roberta gemma porno italian streaming
malena la pugliese film hard porno italian xxx
video sperma party porno italiano 100×100
italian xxx hd porno italiano centopercento
kelly rocco siffredi porno italiano centoxcento
valentina nappi blacked porno italiano malena
porn ultra porno italiano new
film hard cento per cento porno italiano roberta gemma
priscilla salerno e max felicitas porno italiano salieri
squirting shower porno italiano tette grosse
super cazzi porno porno italy
malena hot video porno jasmine
video porno mario salieri porno la pugliese
sperma party italian porno liberty
videos centoxcento porno malena
trixy pornostar porno malena e rocco








