- NtUserWaitForInputIdle: Call EngGetTickCount, removing duplicated code
[reactos.git] / reactos / subsystems / win32 / win32k / stubs / stubs.c
index 2851bbc..96f0736 100644 (file)
@@ -736,45 +736,6 @@ PATHOBJ_vGetBounds(
   UNIMPLEMENTED;
 }
 
-BOOL
-APIENTRY
-XFORMOBJ_bApplyXform(
-       IN XFORMOBJ  *pxo,
-       IN ULONG  iMode,
-       IN ULONG  cPoints,
-       IN PVOID  pvIn,
-       OUT PVOID  pvOut
-       )
-{
-  // www.osr.com/ddk/graphics/gdifncs_027b.htm
-  UNIMPLEMENTED;
-  return FALSE;
-}
-
-ULONG
-APIENTRY
-XFORMOBJ_iGetFloatObjXform(
-       IN XFORMOBJ  *pxo,
-       OUT FLOATOBJ_XFORM  *pxfo
-       )
-{
-  // www.osr.com/ddk/graphics/gdifncs_5ig7.htm
-  UNIMPLEMENTED;
-  return 0;
-}
-
-ULONG
-APIENTRY
-XFORMOBJ_iGetXform(
-       IN XFORMOBJ  *pxo,
-       OUT XFORML  *pxform
-       )
-{
-  // www.osr.com/ddk/graphics/gdifncs_0s2v.htm
-  UNIMPLEMENTED;
-  return 0;
-}
-
 /*
  * @unimplemented
  */
@@ -789,21 +750,34 @@ EngDitherColor(
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL APIENTRY
 EngQuerySystemAttribute(
    IN ENG_SYSTEM_ATTRIBUTE CapNum,
    OUT PDWORD pCapability)
 {
+  SYSTEM_BASIC_INFORMATION sbi;
+  SYSTEM_PROCESSOR_INFORMATION spi;
+
    switch (CapNum)
    {
       case EngNumberOfProcessors:
-         *pCapability = 1;
+         NtQuerySystemInformation(
+                SystemBasicInformation,
+               &sbi,
+                sizeof(SYSTEM_BASIC_INFORMATION),
+                NULL);
+         *pCapability = sbi.NumberOfProcessors;
          return TRUE;
 
       case EngProcessorFeature:
-         *pCapability = 0;
+         NtQuerySystemInformation(
+                SystemProcessorInformation,
+               &spi,
+                sizeof(SYSTEM_PROCESSOR_INFORMATION),
+                NULL);
+         *pCapability = spi.ProcessorFeatureBits;
          return TRUE;
 
       default:
@@ -941,6 +915,19 @@ EngQueryDeviceAttribute(
    return FALSE;
 }
 
+/*
+ * @unimplemented
+ */
+LARGE_INTEGER
+APIENTRY
+EngQueryFileTimeStamp(IN LPWSTR FileName)
+{
+   LARGE_INTEGER FileTime;
+   FileTime.QuadPart = 0;
+   UNIMPLEMENTED;
+   return FileTime;
+}
+
 /*
  * @unimplemented
  */
@@ -2011,19 +1998,6 @@ NtGdiGetColorSpaceforBitmap(
  */
 BOOL
 APIENTRY
-NtGdiGetDeviceCapsAll (
-    IN HDC hdc,
-    OUT PDEVCAPS pDevCaps)
-{
-    UNIMPLEMENTED;
-    return FALSE;
-}
-
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
 NtGdiGetETM(
     IN HDC hdc,
     OUT EXTTEXTMETRIC *petm)
@@ -2151,20 +2125,6 @@ NtGdiGetMonitorID(
  */
 BOOL
 APIENTRY
-NtGdiGetRealizationInfo(
-    IN HDC hdc,
-    OUT PREALIZATION_INFO pri,
-    IN HFONT hf)
-{
-    UNIMPLEMENTED;
-    return FALSE;
-}
-
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
 NtGdiDrawStream(
     IN HDC hdcDst,
     IN ULONG cjIn,
@@ -2266,19 +2226,6 @@ NtGdiQueryFontAssocInfo(
     return 0;
 }
 
- /*
- * @unimplemented
- */
-DWORD
-APIENTRY
-NtGdiGetFontUnicodeRanges(
-    IN HDC hdc,
-    OUT OPTIONAL LPGLYPHSET pgs)
-{
-    UNIMPLEMENTED;
-    return 0;
-}
-
  /*
  * @unimplemented
  */
@@ -2732,19 +2679,6 @@ NtGdiMakeFontDir(
  */
 BOOL
 APIENTRY
-NtGdiMakeInfoDC(
-    IN HDC hdc,
-    IN BOOL bSet)
-{
-    UNIMPLEMENTED;
-    return FALSE;
-}
-
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
 NtGdiMonoBitmap(
     IN HBITMAP hbm)
 {
@@ -2752,21 +2686,6 @@ NtGdiMonoBitmap(
     return FALSE;
 }
 
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
-NtGdiMoveTo(
-    IN HDC hdc,
-    IN INT x,
-    IN INT y,
-    OUT OPTIONAL LPPOINT pptOut)
-{
-    UNIMPLEMENTED;
-    return FALSE;
-}
-
  /*
  * @unimplemented
  */
@@ -2859,7 +2778,7 @@ NtGdiUnmapMemFont(
 }
 
 BOOL
-STDCALL
+APIENTRY
 EngControlSprites(
   IN WNDOBJ  *pwo,
   IN FLONG  fl)
@@ -2969,12 +2888,21 @@ EngFreeSectionMem(IN PVOID SectionObject OPTIONAL,
     UNIMPLEMENTED;
     return FALSE;
 }
+
 ULONGLONG
 APIENTRY
 EngGetTickCount(VOID)
 {
- return ((ULONGLONG)SharedUserData->TickCountLowDeprecated * SharedUserData->TickCountMultiplier / 16777216);
+    ULONG Multiplier;
+    LARGE_INTEGER TickCount;
+
+    /* Get the multiplier and current tick count */
+    KeQueryTickCount(&TickCount);
+    Multiplier = SharedUserData->TickCountMultiplier;
+
+    /* Convert to milliseconds and return */
+    return (Int64ShrlMod32(UInt32x32To64(Multiplier, TickCount.LowPart), 24) +
+            (Multiplier * (TickCount.HighPart << 8)));
 }
  
 BOOLEAN