[NTOSKRNL]
authorAleksandar Andrejevic <aandrejevic@reactos.org>
Sun, 23 Jun 2013 00:47:47 +0000 (00:47 +0000)
committerAleksandar Andrejevic <aandrejevic@reactos.org>
Sun, 23 Jun 2013 00:47:47 +0000 (00:47 +0000)
Implement NtSetTimerResolution.

svn path=/branches/ntvdm/; revision=59299

ntoskrnl/ke/clock.c

index a60eabf..a9d0c10 100644 (file)
@@ -252,8 +252,26 @@ NtSetTimerResolution(IN ULONG DesiredResolution,
                      IN BOOLEAN SetResolution,
                      OUT PULONG CurrentResolution)
 {
                      IN BOOLEAN SetResolution,
                      OUT PULONG CurrentResolution)
 {
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
+    ULONG NewResolution;
+
+    /* Call the internal API */
+    NewResolution = ExSetTimerResolution(DesiredResolution, SetResolution);
+
+    /* Return the resolution to the caller */
+    _SEH2_TRY
+    {
+        ProbeForWriteUlong(CurrentResolution);
+        *CurrentResolution = NewResolution;
+    }
+    _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+    {
+        _SEH2_YIELD(return _SEH2_GetExceptionCode());
+    }
+    _SEH2_END;
+    
+    /* Return success if we set the resolution */
+    if (SetResolution) return STATUS_SUCCESS;
+    else return STATUS_TIMER_RESOLUTION_NOT_SET;
 }
 
 /* EOF */
 }
 
 /* EOF */