#include <w32k.h>
-#define STUB(x) void x(void) { DbgPrint("WIN32K: Stub for %s\n", #x); }
#define UNIMPLEMENTED DbgPrint("(%s:%i) WIN32K: %s UNIMPLEMENTED\n", __FILE__, __LINE__, __FUNCTION__ )
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;
-}
-
-// below here aren't in DDK!!!
-
-STUB(FLOATOBJ_AddFloatObj)
-STUB(FLOATOBJ_DivFloatObj)
-STUB(FLOATOBJ_MulFloatObj)
-STUB(FLOATOBJ_SubFloatObj)
-
/*
* @unimplemented
*/
}
/*
- * @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:
EngClearEvent(
IN PEVENT Event)
{
- UNIMPLEMENTED;
+ /* Forward to the kernel */
+ KeClearEvent((PKEVENT)Event);
}
/*
return FALSE;
}
+/*
+ * @unimplemented
+ */
+LARGE_INTEGER
+APIENTRY
+EngQueryFileTimeStamp(IN LPWSTR FileName)
+{
+ LARGE_INTEGER FileTime;
+ FileTime.QuadPart = 0;
+ UNIMPLEMENTED;
+ return FileTime;
+}
+
/*
* @unimplemented
*/
* @unimplemented
*/
BOOL
+APIENTRY
NtGdiAddRemoteMMInstanceToDC(
IN HDC hdc,
IN DOWNLOADDESIGNVECTOR *pddv,
return FALSE;
}
- /*
- * @unimplemented
- */
-HANDLE
-APIENTRY
-NtGdiCreateServerMetaFile(
- IN DWORD iType,
- IN ULONG cjData,
- IN LPBYTE pjData,
- IN DWORD mm,
- IN DWORD xExt,
- IN DWORD yExt)
-{
- UNIMPLEMENTED;
- return NULL;
-}
-
-
- /*
- * @unimplemented
- */
-
-HDC
-APIENTRY
-NtGdiCreateMetafileDC(IN HDC hdc)
-{
- UNIMPLEMENTED;
- return NULL;
-}
-
-
/*
* @unimplemented
*/
return FALSE;
}
- /*
- * @unimplemented
- */
-LONG
-APIENTRY
-NtGdiConvertMetafileRect(
- IN HDC hdc,
- IN OUT PRECTL prect)
-{
- UNIMPLEMENTED;
- return 0;
-}
-
/*
* @unimplemented
*/
*/
BOOL
APIENTRY
-NtGdiGetDeviceCapsAll (
- IN HDC hdc,
- OUT PDEVCAPS pDevCaps)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
NtGdiGetETM(
IN HDC hdc,
OUT EXTTEXTMETRIC *petm)
* @unimplemented
*/
BOOL
-NtGdiGetRealizationInfo(
- IN HDC hdc,
- OUT PREALIZATION_INFO pri,
- IN HFONT hf)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
- /*
- * @unimplemented
- */
-BOOL
APIENTRY
NtGdiDrawStream(
IN HDC hdcDst,
return 0;
}
- /*
- * @unimplemented
- */
-DWORD
-NtGdiGetFontUnicodeRanges(
- IN HDC hdc,
- OUT OPTIONAL LPGLYPHSET pgs)
-{
- UNIMPLEMENTED;
- return 0;
-}
-
/*
* @unimplemented
*/
return FALSE;
}
- /*
- * @unimplemented
- */
-ULONG
-APIENTRY
-NtGdiGetServerMetaFileBits(
- IN HANDLE hmo,
- IN ULONG cjData,
- OUT OPTIONAL LPBYTE pjData,
- OUT PDWORD piType,
- OUT PDWORD pmm,
- OUT PDWORD pxExt,
- OUT PDWORD pyExt)
-{
- UNIMPLEMENTED;
- return 0;
-}
-
/*
* @unimplemented
*/
*/
BOOL
APIENTRY
-NtGdiMakeInfoDC(
- IN HDC hdc,
- IN BOOL bSet)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
NtGdiMonoBitmap(
IN HBITMAP hbm)
{
return FALSE;
}
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
-NtGdiMoveTo(
- IN HDC hdc,
- IN INT x,
- IN INT y,
- OUT OPTIONAL LPPOINT pptOut)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
/*
* @unimplemented
*/
}
/*
- * @unimplemented
+ * @implemented
*/
BOOL
APIENTRY
NtGdiUnmapMemFont(
IN PVOID pvView)
{
- UNIMPLEMENTED;
- return FALSE;
+ return TRUE;
}
BOOL
-STDCALL
+APIENTRY
EngControlSprites(
IN WNDOBJ *pwo,
IN FLONG fl)
UNIMPLEMENTED;
return FALSE;
}
+
+PVOID
+APIENTRY
+EngFntCacheAlloc(IN ULONG FastCheckSum,
+ IN ULONG ulSize)
+{
+ UNIMPLEMENTED;
+ return NULL;
+}
+
+VOID
+APIENTRY
+EngFntCacheFault(IN ULONG ulFastCheckSum,
+ IN ULONG iFaultMode)
+{
+ UNIMPLEMENTED;
+}
+
+PVOID
+APIENTRY
+EngFntCacheLookUp(IN ULONG FastCheckSum,
+ OUT PULONG pulSize)
+{
+ UNIMPLEMENTED;
+ return NULL;
+}
+
+VOID
+APIENTRY
+FLOATOBJ_AddFloatObj(PFLOATOBJ pFloatObj1,
+ PFLOATOBJ pFloatObj2)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+APIENTRY
+FLOATOBJ_DivFloatObj(PFLOATOBJ pFloatObj1,
+ PFLOATOBJ pFloatObj2)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+APIENTRY
+FLOATOBJ_MulFloatObj(PFLOATOBJ pFloatObj1,
+ PFLOATOBJ pFloatObj2)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+APIENTRY
+FLOATOBJ_SubFloatObj(PFLOATOBJ pFloatObj1,
+ PFLOATOBJ pFloatObj2)
+{
+ UNIMPLEMENTED;
+}
+
+PVOID
+APIENTRY
+EngAllocSectionMem(IN PVOID SectionObject,
+ IN ULONG Flags,
+ IN SIZE_T MemSize,
+ IN ULONG Tag)
+{
+ UNIMPLEMENTED;
+ return NULL;
+}
+
+NTSTATUS
+APIENTRY
+EngFileIoControl(IN PFILE_OBJECT FileObject,
+ IN ULONG IoControlCode,
+ IN PVOID InputBuffer,
+ IN SIZE_T InputBufferLength,
+ OUT PVOID OutputBuffer,
+ IN SIZE_T OutputBufferLength,
+ OUT PULONG Information)
+{
+ UNIMPLEMENTED;
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+VOID
+APIENTRY
+EngFileWrite(IN PFILE_OBJECT FileObject,
+ IN PVOID Buffer,
+ IN SIZE_T Length,
+ IN PSIZE_T BytesWritten)
+{
+ UNIMPLEMENTED;
+}
+
+BOOLEAN
+APIENTRY
+EngFreeSectionMem(IN PVOID SectionObject OPTIONAL,
+ IN PVOID MappedBase)
+{
+ UNIMPLEMENTED;
+ return FALSE;
+}
+
+ULONGLONG
+APIENTRY
+EngGetTickCount(VOID)
+{
+ 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
+APIENTRY
+EngMapSection(IN PVOID Section,
+ IN BOOLEAN Map,
+ IN HANDLE Process,
+ IN PVOID* BaseAddress)
+{
+ UNIMPLEMENTED;
+ return FALSE;
+}
+
+BOOLEAN
+APIENTRY
+EngNineGrid(IN SURFOBJ* pDestSurfaceObj,
+ IN SURFOBJ* pSourceSurfaceObj,
+ IN CLIPOBJ* pClipObj,
+ IN XLATEOBJ* pXlateObj,
+ IN RECTL* prclSource,
+ IN RECTL* prclDest,
+ PVOID pvUnknown1,
+ PVOID pvUnknown2,
+ DWORD dwReserved)
+{
+ UNIMPLEMENTED;
+ return FALSE;
+}