diff --git a/rostests/apitests/apitest.c b/rostests/apitests/apitest.c new file mode 100644 index 00000000000..dc7c5bb4d16 --- /dev/null +++ b/rostests/apitests/apitest.c @@ -0,0 +1,98 @@ +#include "apitest.h" + +void +OutputUsage(LPWSTR pszExe) +{ + printf("\nUsage:\n\n"); + printf("%ls - perform individual test\n", pszExe); + printf("%ls all - perform all tests\n", pszExe); + printf("%ls status - create api status file\n", pszExe); + printf("%ls -r ... - perform regression testing\n", pszExe); + printf("\n"); +} + +int +TestMain(LPWSTR pszExe) +{ + INT argc, i, j; + LPWSTR *argv; + TESTINFO ti; + INT opassed, ofailed, orfailed; + BOOL bAll, bStatus; + + ti.bRegress = FALSE; + bAll = FALSE; + bStatus = FALSE; + opassed = ofailed = orfailed = 0; + + argv = CommandLineToArgvW(GetCommandLineW(), &argc); + + if (argc < 2) + { + OutputUsage(pszExe); + return 0; + } + + /* Get options */ + for (i = 1; i < argc; i++) + { + if (wcsicmp(argv[i], L"-r") == 0) + { + ti.bRegress = TRUE; + } + else if (wcsicmp(argv[i], L"all") == 0) + { + bAll = TRUE; + } + else if (wcsicmp(argv[i], L"status") == 0) + { + bAll = TRUE; + bStatus = TRUE; + } + } + + if (bStatus) + { + printf("Output of API status is unimplemented.\n"); + return 0; + } + + for (i = 0; i < NumTests(); i++) + { + for (j = 1; j < argc; j++) + { + if (bAll || wcsicmp(argv[j], TestList[i].Test) == 0) + { + ti.passed = 0; + ti.failed = 0; + ti.rfailed = 0; + if (!IsFunctionPresent(TestList[i].Test)) + { + printf("Function %ls was not found!\n", TestList[i].Test); + } + else + { + printf("Executing test: %ls\n", TestList[i].Test); + TestList[i].Proc(&ti); + opassed += ti.passed; + ofailed += ti.failed; + orfailed += ti.rfailed; + printf(" tests: %d, passed: %d, failed: %d\n\n", ti.passed+ti.failed, ti.passed, ti.failed); + } + break; + } + } + } + + printf("Overall:\n"); + printf(" tests: %d, passed: %d, failed: %d\n\n", opassed+ofailed, opassed, ofailed); + if (ti.bRegress) + { + printf(" regressions: %d\n", orfailed); + } + + if (ti.bRegress) + return ti.rfailed; + + return ti.failed; +} diff --git a/rostests/apitests/apitest.h b/rostests/apitests/apitest.h new file mode 100644 index 00000000000..0e58aadf5ce --- /dev/null +++ b/rostests/apitests/apitest.h @@ -0,0 +1,85 @@ +#ifndef _APITEST_H +#define _APITEST_H + +#define WINVER 0x501 + +#include + +#include +#include +#include + + +/* type definitions */ + +typedef struct tagTESTINFO +{ + INT passed; + INT failed; + INT rfailed; + BOOL bRegress; +} TESTINFO, *PTESTINFO; + +typedef BOOL (*TESTPROC)(PTESTINFO); + +typedef struct tagTEST +{ + WCHAR* Test; + TESTPROC Proc; +} TESTENTRY, *PTESTENTRY; + + +/* macros */ + +#define TEST(x) \ + if (pti->bRegress) \ + { \ + if (x)\ + {\ + (pti->passed)++;\ + printf("non-rtest succeeded in %s:%d (%s)\n", __FILE__, __LINE__, #x);\ + } else {\ + (pti->failed)++;\ + } \ + } \ + else \ + { \ + if (x)\ + {\ + (pti->passed)++;\ + } else {\ + (pti->failed)++;\ + printf("test failed in %s:%d (%s)\n", __FILE__, __LINE__, #x);\ + } \ + } + +#define RTEST(x) \ + if (pti->bRegress) \ + { \ + if (x)\ + {\ + (pti->passed)++;\ + } else {\ + (pti->failed)++;\ + (pti->rfailed)++;\ + printf("rtest failed in %s:%d (%s)\n", __FILE__, __LINE__, #x);\ + } \ + } \ + else \ + { \ + if (x)\ + {\ + (pti->passed)++;\ + } else {\ + (pti->failed)++;\ + printf("test failed in %s:%d (%s)\n", __FILE__, __LINE__, #x);\ + } \ + } + + +int TestMain(LPWSTR pszExe); +extern TESTENTRY TestList[]; +INT NumTests(void); +BOOL IsFunctionPresent(LPWSTR lpszFunction); + +#endif /* _APITEST_H */ diff --git a/rostests/apitests/directory.rbuild b/rostests/apitests/directory.rbuild new file mode 100644 index 00000000000..9fa19d588a0 --- /dev/null +++ b/rostests/apitests/directory.rbuild @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/rostests/apitests/w32kdll/main.c b/rostests/apitests/w32kdll/main.c new file mode 100644 index 00000000000..65d2fee5736 --- /dev/null +++ b/rostests/apitests/w32kdll/main.c @@ -0,0 +1,31 @@ +#include + +#ifdef BUILD_DLL + #define DLL_EXPORT __declspec(dllexport) +#else + #define DLL_EXPORT +#endif + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + switch (fdwReason) + { + case DLL_PROCESS_ATTACH: + // attach to process + // return FALSE to fail DLL load + break; + + case DLL_PROCESS_DETACH: + // detach from process + break; + + case DLL_THREAD_ATTACH: + // attach to thread + break; + + case DLL_THREAD_DETACH: + // detach from thread + break; + } + return TRUE; // succesful +} diff --git a/rostests/apitests/w32kdll/w32kdll.def b/rostests/apitests/w32kdll/w32kdll.def new file mode 100644 index 00000000000..f665ca116a6 --- /dev/null +++ b/rostests/apitests/w32kdll/w32kdll.def @@ -0,0 +1,680 @@ +; $Id: w32kdll.def 27344 2007-08-01 14:12:10Z tkreuzer $ +; +; ReactOS Operating System +; +; This file contains all win32k native api functions from win xp +; unsupported functions are commented out. +; +LIBRARY w32kdll.dll + +EXPORTS +NtGdiAbortDoc@4 +NtGdiAbortPath@4 +;NtGdiAddFontResourceW@24 +;NtGdiAddRemoteFontToDC@16 +;NtGdiAddFontMemResourceEx@20 +;NtGdiRemoveMergeFont@8 +;NtGdiAddRemoteMMInstanceToDC@12 +;NtGdiAlphaBlend@48 +NtGdiAngleArc@24 +;NtGdiAnyLinkedFonts@0 +;GreFontIsLinked@4 +NtGdiArcInternal@40 +NtGdiBeginPath@4 +NtGdiBitBlt@44 +NtGdiCancelDC@4 +;NtGdiCheckBitmapBits@32 +NtGdiCloseFigure@4 +;NtGdiClearBitmapAttributes@8 +;NtGdiClearBrushAttributes@8 +;NtGdiColorCorrectPalette@24 +NtGdiCombineRgn@16 +NtGdiCombineTransform@12 +;NtGdiComputeXformCoefficients@4 +;NtGdiConsoleTextOut@16 +;NtGdiConvertMetafileRect@8 +NtGdiCreateBitmap@20 +NtGdiCreateClientObj@4 +NtGdiCreateColorSpace@4 +;NtGdiCreateColorTransform@32 +NtGdiCreateCompatibleBitmap@12 +NtGdiCreateCompatibleDC@4 +NtGdiCreateDIBBrush@24 +;NtGdiCreateDIBitmapInternal@44 +NtGdiCreateDIBSection@36 +NtGdiCreateEllipticRgn@16 +NtGdiCreateHalftonePalette@4 +NtGdiCreateHatchBrushInternal@12 +;NtGdiCreateMetafileDC@4 +;NtGdiCreatePaletteInternal@8 +NtGdiCreatePatternBrushInternal@12 +NtGdiCreatePen@16 +NtGdiCreateRectRgn@16 +NtGdiCreateRoundRectRgn@24 +;NtGdiCreateServerMetaFile@24 +NtGdiCreateSolidBrush@8 +NtGdiD3dContextCreate@16 +NtGdiD3dContextDestroy@4 +;NtGdiD3dContextDestroyAll@4 +NtGdiD3dValidateTextureStageState@4 +NtGdiD3dDrawPrimitives2@28 +NtGdiDdGetDriverState@4 +NtGdiDdAddAttachedSurface@12 +NtGdiDdAlphaBlt@12 +NtGdiDdAttachSurface@8 +NtGdiDdBeginMoCompFrame@8 +NtGdiDdBlt@12 +NtGdiDdCanCreateSurface@8 +NtGdiDdCanCreateD3DBuffer@8 +NtGdiDdColorControl@8 +NtGdiDdCreateDirectDrawObject@4 +NtGdiDdCreateSurface@32 +NtGdiDdCreateD3DBuffer@32 +NtGdiDdCreateMoComp@8 +NtGdiDdCreateSurfaceObject@24 +NtGdiDdDeleteDirectDrawObject@4 +NtGdiDdDeleteSurfaceObject@4 +NtGdiDdDestroyMoComp@8 +NtGdiDdDestroySurface@8 +NtGdiDdDestroyD3DBuffer@4 +NtGdiDdEndMoCompFrame@8 +NtGdiDdFlip@20 +NtGdiDdFlipToGDISurface@8 +NtGdiDdGetAvailDriverMemory@8 +NtGdiDdGetBltStatus@8 +NtGdiDdGetDC@8 +NtGdiDdGetDriverInfo@8 +NtGdiDdGetDxHandle@12 +NtGdiDdGetFlipStatus@8 +NtGdiDdGetInternalMoCompInfo@8 +NtGdiDdGetMoCompBuffInfo@8 +NtGdiDdGetMoCompGuids@8 +NtGdiDdGetMoCompFormats@8 +NtGdiDdGetScanLine@8 +NtGdiDdLock@12 +NtGdiDdLockD3D@8 +NtGdiDdQueryDirectDrawObject@44 +NtGdiDdQueryMoCompStatus@8 +NtGdiDdReenableDirectDrawObject@8 +NtGdiDdReleaseDC@4 +NtGdiDdRenderMoComp@8 +NtGdiDdResetVisrgn@8 +NtGdiDdSetColorKey@8 +NtGdiDdSetExclusiveMode@8 +NtGdiDdSetGammaRamp@12 +NtGdiDdCreateSurfaceEx@12 +NtGdiDdSetOverlayPosition@12 +NtGdiDdUnattachSurface@8 +NtGdiDdUnlock@8 +NtGdiDdUnlockD3D@8 +NtGdiDdUpdateOverlay@12 +NtGdiDdWaitForVerticalBlank@8 +;NtGdiDvpCanCreateVideoPort@8 +;NtGdiDvpColorControl@8 +;NtGdiDvpCreateVideoPort@8 +;NtGdiDvpDestroyVideoPort@8 +;NtGdiDvpFlipVideoPort@16 +;NtGdiDvpGetVideoPortBandwidth@8 +;NtGdiDvpGetVideoPortField@8 +;NtGdiDvpGetVideoPortFlipStatus@8 +;NtGdiDvpGetVideoPortInputFormats@8 +;NtGdiDvpGetVideoPortLine@8 +;NtGdiDvpGetVideoPortOutputFormats@8 +;NtGdiDvpGetVideoPortConnectInfo@8 +;NtGdiDvpGetVideoSignalStatus@8 +;NtGdiDvpUpdateVideoPort@16 +;NtGdiDvpWaitForVideoPortSync@8 +;NtGdiDvpAcquireNotification@12 +;NtGdiDvpReleaseNotification@8 +;NtGdiDxgGenericThunk@24 +NtGdiDeleteClientObj@4 +;bDeleteColorSpace@4 +;NtGdiDeleteColorTransform@8 +NtGdiDeleteObjectApp@4 +NtGdiDescribePixelFormat@16 +;NtGdiGetPerBandInfo@8 +;NtGdiDoBanding@16 +;NtGdiDoPalette@24 +NtGdiDrawEscape@16 +NtGdiEllipse@20 +;GreEnableEUDC@4 +NtGdiEndDoc@4 +NtGdiEndPage@4 +NtGdiEndPath@4 +;NtGdiEnumFontChunk@20 +;NtGdiEnumFontClose@4 +;NtGdiEnumFontOpen@28 +NtGdiEnumObjects@16 +NtGdiEqualRgn@8 +;NtGdiEudcLoadUnloadLink@28 +NtGdiExcludeClipRect@20 +NtGdiExtCreatePen@44 +NtGdiExtCreateRegion@12 +NtGdiExtEscape@32 +NtGdiExtFloodFill@20 +NtGdiExtGetObjectW@12 +NtGdiExtSelectClipRgn@12 +;NtGdiExtTextOutW@36 +NtGdiFillPath@4 +NtGdiFillRgn@12 +NtGdiFlattenPath@4 +;NtGdiFlushUserBatch@0 +NtGdiFlush@0 +;NtGdiForceUFIMapping@8 +NtGdiFrameRgn@20 +;NtGdiFullscreenControl@20 +;NtGdiGetAndSetDCDword@16 +;NtGdiGetAppClipBox@8 +NtGdiGetBitmapBits@12 +;NtGdiGetBitmapDimension@8 +NtGdiGetBoundsRect@12 +;NtGdiGetCharABCWidthsW@24 +;NtGdiGetCharacterPlacementW@24 +NtGdiGetCharSet@4 +;NtGdiGetCharWidthW@24 +;NtGdiGetCharWidthInfo@8 +NtGdiGetColorAdjustment@8 +;NtGdiGetColorSpaceforBitmap@4 +;NtGdiGetDCDword@12 +;NtGdiGetDCforBitmap@4 +;NtGdiGetDCObject@8 +;NtGdiGetDCPoint@12 +NtGdiGetDeviceCaps@8 +NtGdiGetDeviceGammaRamp@8 +;NtGdiGetDeviceCapsAll@8 +;NtGdiGetDIBitsInternal@36 +;NtGdiGetETM@8 +;NtGdiGetEudcTimeStampEx@12 +NtGdiGetFontData@20 +NtGdiGetFontResourceInfoInternalW@28 +;NtGdiGetGlyphIndicesW@20 +;NtGdiGetGlyphIndicesWInternal@24 +NtGdiGetGlyphOutline@32 +NtGdiGetKerningPairs@12 +;NtGdiGetLinkedUFIs@12 +NtGdiGetMiterLimit@8 +;NtGdiGetMonitorID@12 +NtGdiGetNearestColor@8 +NtGdiGetNearestPaletteIndex@8 +;NtGdiGetObjectBitmapHandle@8 +NtGdiGetOutlineTextMetricsInternalW@16 +NtGdiGetPath@16 +NtGdiGetPixel@12 +NtGdiGetRandomRgn@12 +NtGdiGetRasterizerCaps@8 +;NtGdiGetRealizationInfo@12 +NtGdiGetRegionData@12 +NtGdiGetRgnBox@8 +;NtGdiGetServerMetaFileBits@28 +;NtGdiGetSpoolMessage@16 +;NtGdiGetStats@20 +NtGdiGetStockObject@4 +;NtGdiGetStringBitmapW@20 +NtGdiGetSystemPaletteUse@4 +NtGdiGetTextCharsetInfo@12 +NtGdiGetTextExtent@20 +NtGdiGetTextExtentExW@32 +NtGdiGetTextFaceW@16 +NtGdiGetTextMetricsW@12 +;NtGdiGetTransform@12 +;NtGdiGetUFI@24 +;NtGdiGetEmbUFI@28 +;NtGdiGetUFIPathname@40 +;GreGetEmbedFonts@0 +;NtGdiChangeGhostFont@8 +;NtGdiAddEmbFontToDC@8 +;NtGdiGetFontUnicodeRanges@8 +;NtGdiGetWidthTable@28 +NtGdiGradientFill@24 +NtGdiHfontCreate@20 +;NtGdiIcmBrushInfo@32 +;NtGdiInit@0 +;NtGdiInitSpool@0 +NtGdiIntersectClipRect@20 +NtGdiInvertRgn@8 +NtGdiLineTo@12 +;NtGdiMakeFontDir@20 +;NtGdiMakeInfoDC@8 +NtGdiMaskBlt@52 +NtGdiModifyWorldTransform@12 +;NtGdiMonoBitmap@4 +;NtGdiMoveTo@16 +NtGdiOffsetClipRgn@12 +NtGdiOffsetRgn@12 +NtGdiOpenDCW@28 +NtGdiPatBlt@24 +NtGdiPolyPatBlt@20 +NtGdiPathToRegion@4 +NtGdiPlgBlt@44 +NtGdiPolyDraw@16 +NtGdiPolyPolyDraw@20 +;NtGdiPolyTextOutW@16 +NtGdiPtInRegion@12 +NtGdiPtVisible@12 +;NtGdiQueryFonts@12 +;NtGdiQueryFontAssocInfo@4 +NtGdiRectangle@20 +NtGdiRectInRegion@8 +NtGdiRectVisible@8 +;NtGdiRemoveFontResourceW@24 +;NtGdiRemoveFontMemResourceEx@4 +NtGdiResetDC@20 +NtGdiResizePalette@8 +NtGdiRestoreDC@8 +NtGdiRoundRect@28 +NtGdiSaveDC@4 +NtGdiScaleViewportExtEx@24 +NtGdiScaleWindowExtEx@24 +;NtGdiSelectBitmap@8 +;GreSelectBitmap@8 +;NtGdiSelectBrush@8 +NtGdiSelectClipPath@8 +;NtGdiSelectFont@8 +;NtGdiSelectPen@8 +;NtGdiSetBitmapAttributes@8 +NtGdiSetBitmapBits@12 +;NtGdiSetBitmapDimension@16 +NtGdiSetBoundsRect@12 +;NtGdiSetBrushAttributes@8 +;NtGdiSetBrushOrg@16 +NtGdiSetColorAdjustment@8 +NtGdiSetColorSpace@8 +NtGdiSetDeviceGammaRamp@8 +;NtGdiSetDIBitsToDeviceInternal@40 +;NtGdiSetFontEnumeration@4 +;NtGdiSetFontXform@12 +;NtGdiSetIcmMode@12 +;NtGdiSetLinkedUFIs@12 +;NtGdiSetMagicColors@12 +NtGdiSetMetaRgn@4 +NtGdiSetMiterLimit@12 +;NtGdiGetDeviceWidth@4 +;NtGdiMirrorWindowOrg@4 +;NtGdiSetLayout@12 +NtGdiSetPixel@16 +NtGdiSetPixelFormat@8 +NtGdiSetRectRgn@20 +NtGdiSetSystemPaletteUse@8 +NtGdiSetTextJustification@12 +;NtGdiSetupPublicCFONT@12 +;NtGdiSetVirtualResolution@20 +;NtGdiSetSizeDevice@12 +NtGdiStartDoc@16 +NtGdiStartPage@4 +NtGdiStretchBlt@48 +;NtGdiStretchDIBitsInternal@40 +NtGdiStrokeAndFillPath@4 +NtGdiStrokePath@4 +NtGdiSwapBuffers@4 +;NtGdiTransformPoints@20 +NtGdiTransparentBlt@44 +;NtGdiUnloadPrinterDriver@8 +;NtGdiUMPDEngFreeUserMem@4 +;NtGdiUnmapMemFont@4 +NtGdiUnrealizeObject@4 +NtGdiUpdateColors@4 +NtGdiWidenPath@4 +NtUserActivateKeyboardLayout@8 +NtUserAlterWindowStyle@12 +;NtUserAssociateInputContext@12 +NtUserAttachThreadInput@12 +NtUserBeginPaint@8 +NtUserBitBltSysBmp@32 +NtUserBlockInput@4 +;NtUserBuildHimcList@16 +NtUserBuildHwndList@28 +NtUserBuildNameList@16 +NtUserBuildPropList@16 +NtUserCallHwnd@8 +NtUserCallHwndLock@8 +NtUserCallHwndOpt@8 +NtUserCallHwndParam@12 +NtUserCallHwndParamLock@12 +NtUserCallMsgFilter@8 +NtUserCallNextHookEx@16 +NtUserCallNoParam@4 +NtUserCallOneParam@8 +NtUserCallTwoParam@12 +NtUserChangeClipboardChain@8 +NtUserChangeDisplaySettings@20 +;NtUserCheckImeHotKey@8 +NtUserCheckMenuItem@12 +NtUserChildWindowFromPointEx@16 +NtUserClipCursor@4 +NtUserCloseClipboard@0 +NtUserCloseDesktop@4 +NtUserCloseWindowStation@4 +;NtUserConsoleControl@12 +NtUserConvertMemHandle@8 +NtUserCopyAcceleratorTable@12 +NtUserCountClipboardFormats@0 +NtUserCreateAcceleratorTable@8 +NtUserCreateCaret@16 +NtUserCreateDesktop@20 +;NtUserCreateInputContext@4 +NtUserCreateLocalMemHandle@16 +;NtUserCreateWindowEx@60 +;NtUserCreateWindowStation@28 +NtUserDdeGetQualityOfService@12 +NtUserDdeInitialize@20 +NtUserDdeSetQualityOfService@12 +NtUserDeferWindowPos@32 +NtUserDefSetText@8 +;NtUserDeleteMenu@12 +NtUserDestroyAcceleratorTable@4 +;NtUserDestroyCursor@8 +;NtUserDestroyInputContext@4 +NtUserDestroyMenu@4 +NtUserDestroyWindow@4 +;NtUserDisableThreadIme@4 +NtUserDispatchMessage@4 +NtUserDragDetect@12 +NtUserDragObject@20 +NtUserDrawAnimatedRects@16 +NtUserDrawCaption@16 +NtUserDrawCaptionTemp@28 +NtUserDrawIconEx@44 +NtUserDrawMenuBarTemp@20 +NtUserEmptyClipboard@0 +NtUserEnableMenuItem@12 +NtUserEnableScrollBar@12 +NtUserEndDeferWindowPosEx@8 +NtUserEndMenu@0 +NtUserEndPaint@8 +NtUserEnumDisplayDevices@16 +;NtUserEnumDisplayMonitors@16 +NtUserEnumDisplaySettings@16 +NtUserEvent@4 +NtUserExcludeUpdateRgn@8 +NtUserFillWindow@16 +;NtUserFindExistingCursorIcon@12 +;NtUserFindWindowEx@20 +NtUserFlashWindowEx@4 +NtUserGetAltTabInfo@24 +NtUserGetAncestor@8 +;NtUserGetAppImeLevel@4 +NtUserGetAsyncKeyState@4 +;NtUserGetAtomName@8 +NtUserGetCaretBlinkTime@0 +NtUserGetCaretPos@4 +;NtUserGetClassInfo@20 +NtUserGetClassName@12 +NtUserGetClipboardData@8 +NtUserGetClipboardFormatName@12 +NtUserGetClipboardOwner@0 +NtUserGetClipboardSequenceNumber@0 +NtUserGetClipboardViewer@0 +NtUserGetClipCursor@4 +NtUserGetComboBoxInfo@8 +NtUserGetControlBrush@12 +NtUserGetControlColor@16 +NtUserGetCPD@12 +NtUserGetCursorFrameInfo@16 +NtUserGetCursorInfo@4 +NtUserGetDC@4 +NtUserGetDCEx@12 +NtUserGetDoubleClickTime@0 +NtUserGetForegroundWindow@0 +NtUserGetGuiResources@8 +NtUserGetGUIThreadInfo@8 +;NtUserGetIconInfo@24 +;NtUserGetIconSize@16 +NtUserGetImeHotKey@16 +;NtUserGetImeInfoEx@8 +NtUserGetInternalWindowPos@12 +NtUserGetKeyboardLayoutList@8 +NtUserGetKeyboardLayoutName@4 +NtUserGetKeyboardState@4 +NtUserGetKeyNameText@12 +NtUserGetKeyState@4 +NtUserGetListBoxInfo@4 +NtUserGetMenuBarInfo@16 +NtUserGetMenuIndex@8 +NtUserGetMenuItemRect@16 +NtUserGetMessage@16 +NtUserGetMouseMovePointsEx@20 +NtUserGetObjectInformation@20 +NtUserGetOpenClipboardWindow@0 +NtUserGetPriorityClipboardFormat@8 +NtUserGetProcessWindowStation@0 +;NtUserGetRawInputBuffer@12 +;NtUserGetRawInputData@20 +;NtUserGetRawInputDeviceInfo@16 +;NtUserGetRawInputDeviceList@12 +;NtUserGetRegisteredRawInputDevices@12 +NtUserGetScrollBarInfo@12 +NtUserGetSystemMenu@8 +NtUserGetThreadDesktop@8 +NtUserGetThreadState@4 +NtUserGetTitleBarInfo@8 +NtUserGetUpdateRect@12 +NtUserGetUpdateRgn@12 +NtUserGetWindowDC@4 +NtUserGetWindowPlacement@8 +NtUserGetWOWClass@8 +;NtUserHardErrorControl@12 +NtUserHideCaret@4 +NtUserHiliteMenuItem@16 +NtUserImpersonateDdeClientWindow@8 +;NtUserInitialize@12 +NtUserInitializeClientPfnArrays@16 +;NtUserInitTask@48 +NtUserInternalGetWindowText@12 +NtUserInvalidateRect@12 +NtUserInvalidateRgn@12 +NtUserIsClipboardFormatAvailable@4 +NtUserKillTimer@8 +;NtUserLoadKeyboardLayoutEx@28 +NtUserLockWindowStation@4 +NtUserLockWindowUpdate@4 +NtUserLockWorkStation@0 +NtUserMapVirtualKeyEx@16 +NtUserMenuItemFromPoint@16 +NtUserMessageCall@28 +;NtUserMinMaximize@12 +NtUserMNDragLeave@0 +NtUserMNDragOver@8 +NtUserModifyUserStartupInfoFlags@8 +NtUserMoveWindow@24 +NtUserNotifyIMEStatus@12 +;NtUserNotifyProcessCreate@16 +NtUserNotifyWinEvent@16 +NtUserOpenClipboard@8 +NtUserOpenDesktop@12 +NtUserOpenInputDesktop@12 +NtUserOpenWindowStation@8 +NtUserPaintDesktop@4 +NtUserPeekMessage@20 +NtUserPostMessage@16 +NtUserPostThreadMessage@16 +;NtUserPrintWindow@12 +;NtUserProcessConnect@12 +;NtUserQueryInformationThread@20 +;NtUserQueryInputContext@8 +NtUserQuerySendMessage@4 +NtUserQueryUserCounters@20 +NtUserQueryWindow@8 +NtUserRealChildWindowFromPoint@12 +;NtUserRealInternalGetMessage@24 +;NtUserRealWaitMessageEx@8 +NtUserRedrawWindow@16 +;NtUserRegisterClassExWOW@28 +;NtUserRegisterUserApiHook@8 +NtUserRegisterHotKey@16 +;NtUserRegisterRawInputDevices@12 +NtUserRegisterTasklist@4 +NtUserRegisterWindowMessage@4 +NtUserRemoveMenu@12 +NtUserRemoveProp@8 +;NtUserResolveDesktop@16 +NtUserResolveDesktopForWOW@4 +NtUserSBGetParms@16 +NtUserScrollDC@28 +NtUserScrollWindowEx@32 +;NtUserSelectPalette@12 +NtUserSendInput@12 +NtUserSetActiveWindow@4 +;NtUserSetAppImeLevel@8 +NtUserSetCapture@4 +NtUserSetClassLong@16 +NtUserSetClassWord@12 +NtUserSetClipboardData@12 +NtUserSetClipboardViewer@4 +NtUserSetConsoleReserveKeys@8 +NtUserSetCursor@4 +;NtUserSetCursorContents@8 +;NtUserSetCursorIconData@16 +NtUserSetDbgTag@8 +NtUserSetFocus@4 +NtUserSetImeHotKey@20 +;NtUserSetImeInfoEx@4 +NtUserSetImeOwnerWindow@8 +;NtUserSetInformationProcess@16 +;NtUserSetInformationThread@16 +NtUserSetInternalWindowPos@16 +NtUserSetKeyboardState@4 +NtUserSetLogonNotifyWindow@4 +NtUserSetMenu@12 +NtUserSetMenuContextHelpId@8 +NtUserSetMenuDefaultItem@12 +NtUserSetMenuFlagRtoL@4 +NtUserSetObjectInformation@16 +NtUserSetParent@8 +NtUserSetProcessWindowStation@4 +NtUserSetProp@12 +NtUserSetRipFlags@8 +NtUserSetScrollInfo@16 +NtUserSetShellWindowEx@8 +NtUserSetSysColors@16 +NtUserSetSystemCursor@8 +NtUserSetSystemMenu@8 +NtUserSetSystemTimer@16 +NtUserSetThreadDesktop@4 +;NtUserSetThreadLayoutHandles@8 +NtUserSetThreadState@8 +NtUserSetTimer@16 +NtUserSetWindowFNID@8 +NtUserSetWindowLong@16 +NtUserSetWindowPlacement@8 +NtUserSetWindowPos@28 +NtUserSetWindowRgn@12 +NtUserSetWindowsHookAW@12 +NtUserSetWindowsHookEx@24 +NtUserSetWindowStationUser@16 +NtUserSetWindowWord@12 +NtUserSetWinEventHook@32 +NtUserShowCaret@4 +NtUserShowScrollBar@12 +NtUserShowWindow@8 +NtUserShowWindowAsync@8 +;NtUserSoundSentry@0 +NtUserSwitchDesktop@4 +NtUserSystemParametersInfo@16 +;NtUserTestForInteractiveUser@4 +NtUserThunkedMenuInfo@8 +NtUserThunkedMenuItemInfo@24 +NtUserToUnicodeEx@28 +NtUserTrackMouseEvent@4 +NtUserTrackPopupMenuEx@24 +;NtUserCalcMenuBar@20 +;NtUserPaintMenuBar@24 +NtUserTranslateAccelerator@12 +NtUserTranslateMessage@8 +NtUserUnhookWindowsHookEx@4 +NtUserUnhookWinEvent@4 +NtUserUnloadKeyboardLayout@4 +NtUserUnlockWindowStation@4 +;NtUserUnregisterClass@12 +;NtUserUnregisterUserApiHook@0 +NtUserUnregisterHotKey@8 +NtUserUpdateInputContext@12 +NtUserUpdateInstance@12 +NtUserUpdateLayeredWindow@36 +;NtUserGetLayeredWindowAttributes@16 +NtUserSetLayeredWindowAttributes@16 +NtUserUpdatePerUserSystemParameters@8 +NtUserUserHandleGrantAccess@12 +NtUserValidateHandleSecure@4 +;NtUserValidateRect@8 +NtUserVkKeyScanEx@12 +;NtUserWaitForInputIdle@12 +NtUserWaitForMsgAndEvent@4 +NtUserWaitMessage@0 +NtUserWin32PoolAllocationStats@24 +NtUserWindowFromPoint@8 +NtUserYieldTask@0 +;NtUserRemoteConnect@12 +;NtUserRemoteRedrawRectangle@16 +;NtUserRemoteRedrawScreen@0 +;NtUserRemoteStopScreenUpdates@0 +;NtUserCtxDisplayIOCtl@12 +;NtGdiEngAssociateSurface@12 +;NtGdiEngCreateBitmap@24 +;NtGdiEngCreateDeviceSurface@16 +;NtGdiEngCreateDeviceBitmap@16 +;NtGdiEngCreatePalette@24 +;NtGdiEngComputeGlyphSet@12 +;NtGdiEngCopyBits@24 +;NtGdiEngDeletePalette@4 +;NtGdiEngDeleteSurface@4 +;NtGdiEngEraseSurface@12 +;NtGdiEngUnlockSurface@4 +;NtGdiEngLockSurface@4 +;NtGdiEngBitBlt@44 +;NtGdiEngStretchBlt@44 +;NtGdiEngPlgBlt@44 +;NtGdiEngMarkBandingSurface@4 +;NtGdiEngStrokePath@32 +;NtGdiEngFillPath@28 +;NtGdiEngStrokeAndFillPath@40 +;NtGdiEngPaint@20 +;NtGdiEngLineTo@36 +;NtGdiEngAlphaBlend@28 +;NtGdiEngGradientFill@40 +;NtGdiEngTransparentBlt@32 +;NtGdiEngTextOut@40 +;NtGdiEngStretchBltROP@52 +;NtGdiXLATEOBJ_cGetPalette@16 +;NtGdiXLATEOBJ_iXlate@8 +;NtGdiXLATEOBJ_hGetColorTransform@4 +;NtGdiCLIPOBJ_bEnum@12 +;NtGdiCLIPOBJ_cEnumStart@20 +;NtGdiCLIPOBJ_ppoGetPath@4 +;NtGdiEngDeletePath@4 +;NtGdiEngCreateClip@0 +;NtGdiEngDeleteClip@4 +;NtGdiBRUSHOBJ_ulGetBrushColor@4 +;NtGdiBRUSHOBJ_pvAllocRbrush@8 +;NtGdiBRUSHOBJ_pvGetRbrush@4 +;NtGdiBRUSHOBJ_hGetColorTransform@4 +;NtGdiXFORMOBJ_bApplyXform@20 +;NtGdiXFORMOBJ_iGetXform@8 +;NtGdiFONTOBJ_vGetInfo@12 +;NtGdiFONTOBJ_pxoGetXform@4 +;NtGdiFONTOBJ_cGetGlyphs@20 +;NtGdiFONTOBJ_pifi@4 +;NtGdiFONTOBJ_pfdg@4 +;NtGdiFONTOBJ_pQueryGlyphAttrs@8 +;NtGdiFONTOBJ_pvTrueTypeFontFile@8 +;NtGdiFONTOBJ_cGetAllGlyphHandles@8 +;NtGdiSTROBJ_bEnum@12 +;NtGdiSTROBJ_bEnumPositionsOnly@12 +;NtGdiSTROBJ_bGetAdvanceWidths@16 +;NtGdiSTROBJ_vEnumStart@4 +;NtGdiSTROBJ_dwGetCodePage@4 +;NtGdiPATHOBJ_vGetBounds@8 +;NtGdiPATHOBJ_bEnum@8 +;NtGdiPATHOBJ_vEnumStart@4 +;NtGdiPATHOBJ_vEnumStartClipLines@16 +;NtGdiPATHOBJ_bEnumClipLines@12 +;NtGdiGetDhpdev@4 +;NtGdiEngCheckAbort@4 +;NtGdiHT_Get8BPPFormatPalette@16 +;NtGdiHT_Get8BPPMaskPalette@24 +;NtGdiUpdateTransform@4 +;NtGdiSetPUMPDOBJ@16 +;NtGdiBRUSHOBJ_DeleteRbrush@8 +;NtGdiUMPDEngFreeUserMem@4 +;NtGdiUnmapMemFont@4 +;NtGdiDrawStream@12 + diff --git a/rostests/apitests/w32kdll/w32kdll.rbuild b/rostests/apitests/w32kdll/w32kdll.rbuild new file mode 100644 index 00000000000..401a512c596 --- /dev/null +++ b/rostests/apitests/w32kdll/w32kdll.rbuild @@ -0,0 +1,7 @@ + + + + 0x0502 + win32ksys + main.c + diff --git a/rostests/apitests/w32knapi/ntdd/NtGdiDdCreateDirectDrawObject.c b/rostests/apitests/w32knapi/ntdd/NtGdiDdCreateDirectDrawObject.c new file mode 100644 index 00000000000..fb0dd6dce9b --- /dev/null +++ b/rostests/apitests/w32knapi/ntdd/NtGdiDdCreateDirectDrawObject.c @@ -0,0 +1,25 @@ +#include "..\w32knapi.h" + +W32KAPI +HANDLE +APIENTRY +NtGdiDdCreateDirectDrawObject( + IN HDC hdc +) +{ + return (HANDLE)Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc); +} + +BOOL +Test_NtGdiDdCreateDirectDrawObject(PTESTINFO pti) +{ + HDC hdc=CreateDCW(L"Display",NULL,NULL,NULL); + + RTEST(NtGdiDdCreateDirectDrawObject(NULL) == NULL); + + TEST(NtGdiDdCreateDirectDrawObject(hdc) != NULL); + + DeleteDC(hdc); + + return TRUE; +} diff --git a/rostests/apitests/w32knapi/ntdd/NtGdiDdDeleteDirectDrawObject.c b/rostests/apitests/w32knapi/ntdd/NtGdiDdDeleteDirectDrawObject.c new file mode 100644 index 00000000000..7d9dc0ea284 --- /dev/null +++ b/rostests/apitests/w32knapi/ntdd/NtGdiDdDeleteDirectDrawObject.c @@ -0,0 +1,19 @@ +#include "..\w32knapi.h" + +W32KAPI +BOOL +APIENTRY +NtGdiDdDeleteDirectDrawObject( + HANDLE hDirectDrawLocal +) +{ + return (BOOL)Syscall(L"NtGdiDdDeleteDirectDrawObject", 1, &hDirectDrawLocal); +} + +BOOL +Test_NtGdiDdDeleteDirectDrawObject(PTESTINFO pti) +{ + TEST(NtGdiDdDeleteDirectDrawObject(NULL) == 0); + + return TRUE; +} diff --git a/rostests/apitests/w32knapi/ntdd/NtGdiDdQueryDirectDrawObject.c b/rostests/apitests/w32knapi/ntdd/NtGdiDdQueryDirectDrawObject.c new file mode 100644 index 00000000000..3a4e51b4180 --- /dev/null +++ b/rostests/apitests/w32knapi/ntdd/NtGdiDdQueryDirectDrawObject.c @@ -0,0 +1,27 @@ +#include "..\w32knapi.h" +#if 0 +W32KAPI +BOOL STDCALL +NtGdiDdQueryDirectDrawObject( + HANDLE hDirectDrawLocal, + DD_HALINFO *pHalInfo, + DWORD *pCallBackFlags, + LPD3DNTHAL_CALLBACKS puD3dCallbacks, + LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, + PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, + LPDDSURFACEDESC puD3dTextureFormats, + DWORD *puNumHeaps, + VIDEOMEMORY *puvmList, + DWORD *puNumFourCC, + DWORD *puFourCC +) +{ + return (HANDLE)Syscall("NtGdiDdQueryDirectDrawObject", 11, &hDirectDrawLocal); +} +#endif +BOOL +Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti) +{ + + return TRUE; +} diff --git a/rostests/apitests/w32knapi/ntgdi/NtGdiArcInternal.c b/rostests/apitests/w32knapi/ntgdi/NtGdiArcInternal.c new file mode 100644 index 00000000000..5b736f42262 --- /dev/null +++ b/rostests/apitests/w32knapi/ntgdi/NtGdiArcInternal.c @@ -0,0 +1,57 @@ +#include "../w32knapi.h" + +typedef int ARCTYPE; + +BOOL +STDCALL +NtGdiArcInternal( + ARCTYPE arctype, + HDC hDC, + int LeftRect, + int TopRect, + int RightRect, + int BottomRect, + int XStartArc, + int YStartArc, + int XEndArc, + int YEndArc) +{ + return (BOOL)Syscall(L"NtGdiArcInternal", 10, &arctype); +} + +BOOL +Test_NtGdiArcInternal(PTESTINFO pti) +{ + HDC hDC = CreateDCW(L"Display",NULL,NULL,NULL); + + SetLastError(ERROR_SUCCESS); + TEST(NtGdiArcInternal(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) == FALSE); + TEST(GetLastError() == ERROR_INVALID_HANDLE); + + SetLastError(ERROR_SUCCESS); + TEST(NtGdiArcInternal(0, hDC, 0, 0, 0, 0, 0, 0, 0, 0) == TRUE); + TEST(NtGdiArcInternal(1, hDC, 0, 0, 0, 0, 0, 0, 0, 0) == TRUE); + TEST(NtGdiArcInternal(2, hDC, 0, 0, 0, 0, 0, 0, 0, 0) == TRUE); + TEST(NtGdiArcInternal(3, hDC, 0, 0, 0, 0, 0, 0, 0, 0) == TRUE); + TEST(GetLastError() == ERROR_SUCCESS); + + SetLastError(ERROR_SUCCESS); + TEST(NtGdiArcInternal(4, hDC, 0, 0, 0, 0, 0, 0, 0, 0) == FALSE); + TEST(GetLastError() == ERROR_INVALID_PARAMETER); + + SetLastError(ERROR_SUCCESS); + TEST(NtGdiArcInternal(4, (HDC)10, 0, 0, 0, 0, 0, 0, 0, 0) == FALSE); + TEST(GetLastError() == ERROR_INVALID_HANDLE); + + SetLastError(ERROR_SUCCESS); + TEST(NtGdiArcInternal(0, hDC, 10, 10, 0, 0, 0, 0, 0, 0) == TRUE); + TEST(NtGdiArcInternal(0, hDC, 10, 10, -10, -10, 0, 0, 0, 0) == TRUE); + TEST(NtGdiArcInternal(0, hDC, 0, 0, 0, 0, 10, 0, -10, 0) == TRUE); + +// was passiert, wenn left > right ? einfach tauschen? + + + DeleteDC(hDC); + + return TRUE; +} diff --git a/rostests/apitests/w32knapi/ntgdi/NtGdiGetBitmapBits.c b/rostests/apitests/w32knapi/ntgdi/NtGdiGetBitmapBits.c new file mode 100644 index 00000000000..171fa0bdf1a --- /dev/null +++ b/rostests/apitests/w32knapi/ntgdi/NtGdiGetBitmapBits.c @@ -0,0 +1,74 @@ +#include "../w32knapi.h" + +LONG STDCALL +NtGdiGetBitmapBits( + HBITMAP hBitmap, + DWORD Bytes, + IN PBYTE Bits) +{ + return (LONG)Syscall(L"NtGdiGetBitmapBits", 3, &hBitmap); +} + + +BOOL +Test_NtGdiGetBitmapBits(PTESTINFO pti) +{ + BYTE Bits[50] = {0,1,2,3,4,5,6,7,8,9}; + HBITMAP hBitmap; + + SetLastError(ERROR_SUCCESS); + RTEST(NtGdiGetBitmapBits(0, 0, 0) == 0); + RTEST(GetLastError() == ERROR_INVALID_HANDLE); + + /* Test NULL bitmap handle */ + SetLastError(ERROR_SUCCESS); + RTEST(NtGdiGetBitmapBits(0, 5, Bits) == 0); + RTEST(GetLastError() == ERROR_INVALID_HANDLE); + + /* Test invalid bitmap handle */ + hBitmap = (HBITMAP)CreatePen(PS_SOLID, 1, RGB(1,2,3)); + SetLastError(ERROR_SUCCESS); + RTEST(NtGdiGetBitmapBits(hBitmap, 5, Bits) == 0); + RTEST(GetLastError() == ERROR_INVALID_HANDLE); + DeleteObject(hBitmap); + + hBitmap = CreateBitmap(3, 3, 1, 8, NULL); + SetLastError(ERROR_SUCCESS); + + /* test NULL pointer and count buffer size != 0 */ + RTEST(NtGdiGetBitmapBits(hBitmap, 5, NULL) == 12); + + /* test NULL pointer and buffer size == 0*/ + RTEST(NtGdiGetBitmapBits(hBitmap, 0, NULL) == 12); + + /* test bad pointer */ + RTEST(NtGdiGetBitmapBits(hBitmap, 5, (PBYTE)0x500) == 0); + + /* Test if we can set a number of bytes between lines */ + RTEST(NtGdiGetBitmapBits(hBitmap, 5, Bits) == 5); + + /* Test alignment */ + RTEST(NtGdiGetBitmapBits(hBitmap, 4, Bits+1) == 4); + + /* Test 1 byte too much */ + RTEST(NtGdiGetBitmapBits(hBitmap, 10, Bits) == 10); + + /* Test one row too much */ + RTEST(NtGdiGetBitmapBits(hBitmap, 12, Bits) == 12); + + RTEST(NtGdiGetBitmapBits(hBitmap, 13, Bits) == 12); + + RTEST(NtGdiGetBitmapBits(hBitmap, 100, Bits) == 12); + + /* Test huge bytes count */ + RTEST(NtGdiGetBitmapBits(hBitmap, 12345678, Bits) == 12); + + /* Test negative bytes count */ + RTEST(NtGdiGetBitmapBits(hBitmap, -5, Bits) == 12); + + RTEST(GetLastError() == ERROR_SUCCESS); + + DeleteObject(hBitmap); + + return TRUE; +} diff --git a/rostests/apitests/w32knapi/ntgdi/NtGdiSetBitmapBits.c b/rostests/apitests/w32knapi/ntgdi/NtGdiSetBitmapBits.c new file mode 100644 index 00000000000..9114356a0e9 --- /dev/null +++ b/rostests/apitests/w32knapi/ntgdi/NtGdiSetBitmapBits.c @@ -0,0 +1,74 @@ +#include "../w32knapi.h" + +LONG STDCALL +NtGdiSetBitmapBits( + HBITMAP hBitmap, + DWORD Bytes, + IN PBYTE Bits) +{ + return (LONG)Syscall(L"NtGdiSetBitmapBits", 3, &hBitmap); +} + + +BOOL +Test_NtGdiSetBitmapBits(PTESTINFO pti) +{ + BYTE Bits[50] = {0,1,2,3,4,5,6,7,8,9}; + HBITMAP hBitmap; + + SetLastError(ERROR_SUCCESS); + RTEST(NtGdiSetBitmapBits(0, 0, 0) == 0); + RTEST(GetLastError() == ERROR_SUCCESS); + + /* Test NULL bitnap handle */ + SetLastError(ERROR_SUCCESS); + RTEST(NtGdiSetBitmapBits(0, 5, Bits) == 0); + RTEST(GetLastError() == ERROR_INVALID_HANDLE); + + /* Test invalid bitmap handle */ + hBitmap = (HBITMAP)CreatePen(PS_SOLID, 1, RGB(1,2,3)); + SetLastError(ERROR_SUCCESS); + RTEST(NtGdiSetBitmapBits(hBitmap, 5, Bits) == 0); + RTEST(GetLastError() == ERROR_INVALID_HANDLE); + DeleteObject(hBitmap); + + hBitmap = CreateBitmap(3, 3, 1, 8, NULL); + SetLastError(ERROR_SUCCESS); + + /* test NULL pointer and count buffer size != 0 */ + RTEST(NtGdiSetBitmapBits(hBitmap, 5, NULL) == 0); + + /* test NULL pointer and buffer size == 0*/ + RTEST(NtGdiSetBitmapBits(hBitmap, 0, NULL) == 0); + + /* test bad pointer */ + RTEST(NtGdiSetBitmapBits(hBitmap, 5, (PBYTE)0x500) == 0); + + /* Test if we can set a number of bytes between lines */ + RTEST(NtGdiSetBitmapBits(hBitmap, 5, Bits) == 5); + + /* Test alignment */ + RTEST(NtGdiSetBitmapBits(hBitmap, 4, Bits+1) == 4); + + /* Test 1 byte too much */ + RTEST(NtGdiSetBitmapBits(hBitmap, 10, Bits) == 10); + + /* Test one row too much */ + RTEST(NtGdiSetBitmapBits(hBitmap, 12, Bits) == 12); + + RTEST(NtGdiSetBitmapBits(hBitmap, 13, Bits) == 12); + + RTEST(NtGdiSetBitmapBits(hBitmap, 100, Bits) == 12); + + /* Test huge bytes count */ + TEST(NtGdiSetBitmapBits(hBitmap, 12345678, Bits) == 0); + + /* Test negative bytes count */ + RTEST(NtGdiSetBitmapBits(hBitmap, -5, Bits) == 0); + + RTEST(GetLastError() == ERROR_SUCCESS); + + DeleteObject(hBitmap); + + return TRUE; +} diff --git a/rostests/apitests/w32knapi/ntuser/NtUserCountClipboardFormats.c b/rostests/apitests/w32knapi/ntuser/NtUserCountClipboardFormats.c new file mode 100644 index 00000000000..5cd8fe02a7c --- /dev/null +++ b/rostests/apitests/w32knapi/ntuser/NtUserCountClipboardFormats.c @@ -0,0 +1,18 @@ +#include "../w32knapi.h" + +/* First the call stub */ +DWORD STDCALL +NtUserCountClipboardFormats(VOID) +{ + DWORD p; + return Syscall(L"NtUserCountClipboardFormats", 0, &p); +} + +BOOL +Test_NtUserCountClipboardFormats(PTESTINFO pti) +{ + TEST(NtUserCountClipboardFormats() < 1000); + TEST(TRUE); + return TRUE; +} + diff --git a/rostests/apitests/w32knapi/testlist.c b/rostests/apitests/w32knapi/testlist.c new file mode 100644 index 00000000000..7eae1eaf298 --- /dev/null +++ b/rostests/apitests/w32knapi/testlist.c @@ -0,0 +1,37 @@ +#include "..\apitest.h" + +/* include the tests */ + +#include "ntdd/NtGdiDdCreateDirectDrawObject.c" +#include "ntdd/NtGdiDdDeleteDirectDrawObject.c" +#include "ntdd/NtGdiDdQueryDirectDrawObject.c" + +#include "ntgdi/NtGdiArcInternal.c" +#include "ntgdi/NtGdiSetBitmapBits.c" +#include "ntgdi/NtGdiGetBitmapBits.c" + +#include "ntuser/NtUserCountClipboardFormats.c" + +/* The List of tests */ +TESTENTRY TestList[] = +{ + /* DirectDraw */ + { L"NtGdiDdCreateDirectDrawObject", Test_NtGdiDdCreateDirectDrawObject }, + { L"NtGdiDdDeleteDirectDrawObject", Test_NtGdiDdDeleteDirectDrawObject }, + { L"NtGdiDdQueryDirectDrawObject", Test_NtGdiDdQueryDirectDrawObject }, + + /* ntgdi */ + { L"NtGdiArcInternal", Test_NtGdiArcInternal }, + { L"NtGdiGetBitmapBits", Test_NtGdiGetBitmapBits }, + { L"NtGdiSetBitmapBits", Test_NtGdiSetBitmapBits }, + + /* ntuser */ + { L"NtUserCountClipboardFormats", Test_NtUserCountClipboardFormats } +}; + +/* The function that gives us the number of tests */ +INT NumTests(void) +{ + return sizeof(TestList) / sizeof(TESTENTRY); +} + diff --git a/rostests/apitests/w32knapi/w32knapi.c b/rostests/apitests/w32knapi/w32knapi.c new file mode 100644 index 00000000000..35f512f92cf --- /dev/null +++ b/rostests/apitests/w32knapi/w32knapi.c @@ -0,0 +1,161 @@ +#include "w32knapi.h" + +HINSTANCE g_hInstance; +HMODULE g_hModule = NULL; +INT g_nOs; +PSYSCALL_ENTRY g_SyscallTable; + +BOOL +InitOsVersion() +{ + OSVERSIONINFOW osv; + LPWSTR pszRos; + + osv.dwOSVersionInfoSize = sizeof(osv); + GetVersionExW(&osv); + pszRos = osv.szCSDVersion + wcslen(osv.szCSDVersion) + 1; + /* make sure the string is zero terminated */ + pszRos[127] = 0; + /* Is ReactOS? */ + if (wcsstr(pszRos, L"ReactOS") != NULL) + { + printf("Running on %ls\n", pszRos); + g_hModule = LoadLibraryW(L"w32kdll.dll"); + if (!g_hModule) + { + printf("w32kdll.dll not found!\n"); + return FALSE; + } + g_nOs = OS_REACTOS; + return TRUE; + } + + if (osv.dwPlatformId != VER_PLATFORM_WIN32_NT) + { + printf("Unsupported OS\n"); + return FALSE; + } + + if (osv.dwMajorVersion == 5 && osv.dwMinorVersion == 1 && osv.dwBuildNumber == 2600) + { + printf("Running on Windows XP, build 2600\n"); + g_nOs = OS_WINDOWS; + g_SyscallTable = SyscallTable_XP_2600; + return TRUE; + } + + printf("Unsupported OS\n"); + + return FALSE; +} + + +static BOOL +RosSyscall(LPWSTR lpszFunction, int cParams, void* pParams, DWORD* pResult) +{ + DWORD ret; + char szFunctionName[MAX_PATH]; + int ParamSize = cParams * 4; + + sprintf(szFunctionName, "%ls", lpszFunction); + FARPROC proc = (FARPROC)GetProcAddress(g_hModule, szFunctionName); + if (!proc) + { + printf("Couldn't find proc: %s\n", szFunctionName); + return FALSE; + } + + asm volatile + ( + "subl %%eax, %%esp;" // calculate new stack pos + "movl %%esp, %%edi;" // destination is stackpointer + "cld;" // clear direction flag + "rep movsd;" // copy params to the stack + "call *%%edx" // call function + : "=a" (ret) + : "c" (cParams), "a" (ParamSize), "S"(pParams), "d"(proc) + ); + + *pResult = ret; + return TRUE; +} + +static PSYSCALL_ENTRY +GetSyscallEntry(LPWSTR lpszFunction) +{ + INT i; + + for (i = 0; g_SyscallTable[i].lpszFunction != NULL; i++) + { + if (wcscmp(g_SyscallTable[i].lpszFunction, lpszFunction) == 0) + { + return &g_SyscallTable[i]; + } + } + return NULL; +} + +static BOOL +WinSyscall(LPWSTR pszFunction, void* pParams, void* pResult) +{ + PSYSCALL_ENTRY pEntry = GetSyscallEntry(pszFunction); + DWORD ret; + + asm volatile ("int $0x2e\n" : "=a"(ret): "a" (pEntry->nSyscallNum), "d" (pParams));\ + *((DWORD*)pResult) = ret; + return FALSE; +} + +DWORD +Syscall(LPWSTR pszFunction, int cParams, void* pParams) +{ + DWORD dwRet = 0; + + if (g_nOs == OS_REACTOS) + { + RosSyscall(pszFunction, cParams, pParams, &dwRet); + } + else + { + WinSyscall(pszFunction, pParams, &dwRet); + } + return dwRet; +} + +BOOL +IsFunctionPresent(LPWSTR lpszFunction) +{ + if (g_nOs == OS_REACTOS) + { + char szFunctionName[MAX_PATH]; + sprintf(szFunctionName, "%ls", lpszFunction); + return (GetProcAddress(g_hModule, szFunctionName) != NULL); + } + + return (GetSyscallEntry(lpszFunction) != NULL); +} + +int APIENTRY +WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow) +{ + g_hInstance = hInstance; + + printf("Win32k native API test\n"); + + /* Convert to gui thread */ + IsGUIThread(TRUE); + + if (!InitOsVersion()) + { + return 0; + } + + printf("\n"); + + TestMain(L"w32knapi.exe"); + + return 0; +} diff --git a/rostests/apitests/w32knapi/w32knapi.h b/rostests/apitests/w32knapi/w32knapi.h new file mode 100644 index 00000000000..22c3393a3e8 --- /dev/null +++ b/rostests/apitests/w32knapi/w32knapi.h @@ -0,0 +1,28 @@ +#ifndef _W32KNAPI_H +#define _W32KNAPI_H + +#include "..\apitest.h" +#include + +#define OS_UNSUPPORTED 0 +#define OS_REACTOS 1 +#define OS_WINDOWS 2 + +#define W32KAPI + +typedef struct +{ + LPWSTR lpszFunction; + INT nSyscallNum; + INT nParams; +} SYCALL_ENTRY, *PSYSCALL_ENTRY; + +extern HINSTANCE g_hInstance; +extern SYCALL_ENTRY SyscallTable_XP_2600[]; +extern HMODULE g_hModule; +extern INT g_nOsVer; + +DWORD Syscall(LPWSTR lpszFunction, int cParams, void* pParams); +BOOL InitOsVersion(); + +#endif /* _W32KNAPI_H */ diff --git a/rostests/apitests/w32knapi/w32knapi.rbuild b/rostests/apitests/w32knapi/w32knapi.rbuild new file mode 100644 index 00000000000..f997b9d1ff3 --- /dev/null +++ b/rostests/apitests/w32knapi/w32knapi.rbuild @@ -0,0 +1,13 @@ + + . + + 0x0501 + kernel32 + user32 + gdi32 + shell32 + w32knapi.c + testlist.c + xp-2600.c + ..\apitest.c + diff --git a/rostests/apitests/w32knapi/xp-2600.c b/rostests/apitests/w32knapi/xp-2600.c new file mode 100644 index 00000000000..664e3228987 --- /dev/null +++ b/rostests/apitests/w32knapi/xp-2600.c @@ -0,0 +1,677 @@ +#include "w32knapi.h" + +SYCALL_ENTRY +SyscallTable_XP_2600[] = +{ + {L"NtGdiAbortDoc", 0x1000,1}, + {L"NtGdiAbortPath", 0x1001,1}, + {L"NtGdiAddFontResourceW", 0x1002,6}, + {L"NtGdiAddRemoteFontToDC", 0x1003,4}, + {L"NtGdiAddFontMemResourceEx", 0x1004,5}, + {L"NtGdiRemoveMergeFont", 0x1005,2}, + {L"NtGdiAddRemoteMMInstanceToDC", 0x1006,3}, + {L"NtGdiAlphaBlend", 0x1007,12}, + {L"NtGdiAngleArc", 0x1008,6}, + {L"NtGdiAnyLinkedFonts", 0x1009,0}, + {L"GreFontIsLinked", 0x100A,1}, + {L"NtGdiArcInternal", 0x100B,10}, + {L"NtGdiBeginPath", 0x100C,1}, + {L"NtGdiBitBlt", 0x100D,11}, + {L"NtGdiCancelDC", 0x100E,1}, + {L"NtGdiCheckBitmapBits", 0x100F,8}, + {L"NtGdiCloseFigure", 0x1010,1}, + {L"NtGdiClearBitmapAttributes", 0x1011,2}, + {L"NtGdiClearBrushAttributes", 0x1012,2}, + {L"NtGdiColorCorrectPalette", 0x1013,6}, + {L"NtGdiCombineRgn", 0x1014,4}, + {L"NtGdiCombineTransform", 0x1015,3}, + {L"NtGdiComputeXformCoefficients", 0x1016,1}, + {L"NtGdiConsoleTextOut", 0x1017,4}, + {L"NtGdiConvertMetafileRect", 0x1018,2}, + {L"NtGdiCreateBitmap", 0x1019,5}, + {L"NtGdiCreateClientObj", 0x101A,1}, + {L"NtGdiCreateColorSpace", 0x101B,1}, + {L"NtGdiCreateColorTransform", 0x101C,8}, + {L"NtGdiCreateCompatibleBitmap", 0x101D,3}, + {L"NtGdiCreateCompatibleDC", 0x101E,1}, + {L"NtGdiCreateDIBBrush", 0x101F,6}, + {L"NtGdiCreateDIBitmapInternal", 0x1020,11}, + {L"NtGdiCreateDIBSection", 0x1021,9}, + {L"NtGdiCreateEllipticRgn", 0x1022,4}, + {L"NtGdiCreateHalftonePalette", 0x1023,1}, + {L"NtGdiCreateHatchBrushInternal", 0x1024,3}, + {L"NtGdiCreateMetafileDC", 0x1025,1}, + {L"NtGdiCreatePaletteInternal", 0x1026,2}, + {L"NtGdiCreatePatternBrushInternal", 0x1027,3}, + {L"NtGdiCreatePen", 0x1028,4}, + {L"NtGdiCreateRectRgn", 0x1029,4}, + {L"NtGdiCreateRoundRectRgn", 0x102A,6}, + {L"NtGdiCreateServerMetaFile", 0x102B,6}, + {L"NtGdiCreateSolidBrush", 0x102C,2}, + {L"NtGdiD3dContextCreate", 0x102D,4}, + {L"NtGdiD3dContextDestroy", 0x102E,1}, + {L"NtGdiD3dContextDestroyAll", 0x102F,1}, + {L"NtGdiD3dValidateTextureStageState", 0x1030,1}, + {L"NtGdiD3dDrawPrimitives2", 0x1031,7}, + {L"NtGdiDdGetDriverState", 0x1032,1}, + {L"NtGdiDdAddAttachedSurface", 0x1033,3}, + {L"NtGdiDdAlphaBlt", 0x1034,3}, + {L"NtGdiDdAttachSurface", 0x1035,2}, + {L"NtGdiDdBeginMoCompFrame", 0x1036,2}, + {L"NtGdiDdBlt", 0x1037,3}, + {L"NtGdiDdCanCreateSurface", 0x1038,2}, + {L"NtGdiDdCanCreateD3DBuffer", 0x1039,2}, + {L"NtGdiDdColorControl", 0x103A,2}, + {L"NtGdiDdCreateDirectDrawObject", 0x103B,1}, + {L"NtGdiDdCreateSurface", 0x103C,8}, + {L"NtGdiDdCreateD3DBuffer", 0x103D,8}, + {L"NtGdiDdCreateMoComp", 0x103E,2}, + {L"NtGdiDdCreateSurfaceObject", 0x103F,6}, + {L"NtGdiDdDeleteDirectDrawObject", 0x1040,1}, + {L"NtGdiDdDeleteSurfaceObject", 0x1041,1}, + {L"NtGdiDdDestroyMoComp", 0x1042,2}, + {L"NtGdiDdDestroySurface", 0x1043,2}, + {L"NtGdiDdDestroyD3DBuffer", 0x1044,1}, + {L"NtGdiDdEndMoCompFrame", 0x1045,2}, + {L"NtGdiDdFlip", 0x1046,5}, + {L"NtGdiDdFlipToGDISurface", 0x1047,2}, + {L"NtGdiDdGetAvailDriverMemory", 0x1048,2}, + {L"NtGdiDdGetBltStatus", 0x1049,2}, + {L"NtGdiDdGetDC", 0x104A,2}, + {L"NtGdiDdGetDriverInfo", 0x104B,2}, + {L"NtGdiDdGetDxHandle", 0x104C,3}, + {L"NtGdiDdGetFlipStatus", 0x104D,2}, + {L"NtGdiDdGetInternalMoCompInfo", 0x104E,2}, + {L"NtGdiDdGetMoCompBuffInfo", 0x104F,2}, + {L"NtGdiDdGetMoCompGuids", 0x1050,2}, + {L"NtGdiDdGetMoCompFormats", 0x1051,2}, + {L"NtGdiDdGetScanLine", 0x1052,2}, + {L"NtGdiDdLock", 0x1053,3}, + {L"NtGdiDdLockD3D", 0x1054,2}, + {L"NtGdiDdQueryDirectDrawObject", 0x1055,11}, + {L"NtGdiDdQueryMoCompStatus", 0x1056,2}, + {L"NtGdiDdReenableDirectDrawObject", 0x1057,2}, + {L"NtGdiDdReleaseDC", 0x1058,1}, + {L"NtGdiDdRenderMoComp", 0x1059,2}, + {L"NtGdiDdResetVisrgn", 0x105A,2}, + {L"NtGdiDdSetColorKey", 0x105B,2}, + {L"NtGdiDdSetExclusiveMode", 0x105C,2}, + {L"NtGdiDdSetGammaRamp", 0x105D,3}, + {L"NtGdiDdCreateSurfaceEx", 0x105E,3}, + {L"NtGdiDdSetOverlayPosition", 0x105F,3}, + {L"NtGdiDdUnattachSurface", 0x1060,2}, + {L"NtGdiDdUnlock", 0x1061,2}, + {L"NtGdiDdUnlockD3D", 0x1062,2}, + {L"NtGdiDdUpdateOverlay", 0x1063,3}, + {L"NtGdiDdWaitForVerticalBlank", 0x1064,2}, + {L"NtGdiDvpCanCreateVideoPort", 0x1065,2}, + {L"NtGdiDvpColorControl", 0x1066,2}, + {L"NtGdiDvpCreateVideoPort", 0x1067,2}, + {L"NtGdiDvpDestroyVideoPort", 0x1068,2}, + {L"NtGdiDvpFlipVideoPort", 0x1069,4}, + {L"NtGdiDvpGetVideoPortBandwidth", 0x106A,2}, + {L"NtGdiDvpGetVideoPortField", 0x106B,2}, + {L"NtGdiDvpGetVideoPortFlipStatus", 0x106C,2}, + {L"NtGdiDvpGetVideoPortInputFormats", 0x106D,2}, + {L"NtGdiDvpGetVideoPortLine", 0x106E,2}, + {L"NtGdiDvpGetVideoPortOutputFormats", 0x106F,2}, + {L"NtGdiDvpGetVideoPortConnectInfo", 0x1070,2}, + {L"NtGdiDvpGetVideoSignalStatus", 0x1071,2}, + {L"NtGdiDvpUpdateVideoPort", 0x1072,4}, + {L"NtGdiDvpWaitForVideoPortSync", 0x1073,2}, + {L"NtGdiDvpAcquireNotification", 0x1074,3}, + {L"NtGdiDvpReleaseNotification", 0x1075,2}, + {L"NtGdiDxgGenericThunk", 0x1076,6}, + {L"NtGdiDeleteClientObj", 0x1077,1}, + {L"bDeleteColorSpace", 0x1078,1}, + {L"NtGdiDeleteColorTransform", 0x1079,2}, + {L"NtGdiDeleteObjectApp", 0x107A,1}, + {L"NtGdiDescribePixelFormat", 0x107B,4}, + {L"NtGdiGetPerBandInfo", 0x107C,2}, + {L"NtGdiDoBanding", 0x107D,4}, + {L"NtGdiDoPalette", 0x107E,6}, + {L"NtGdiDrawEscape", 0x107F,4}, + {L"NtGdiEllipse", 0x1080,5}, + {L"GreEnableEUDC", 0x1081,1}, + {L"NtGdiEndDoc", 0x1082,1}, + {L"NtGdiEndPage", 0x1083,1}, + {L"NtGdiEndPath", 0x1084,1}, + {L"NtGdiEnumFontChunk", 0x1085,5}, + {L"NtGdiEnumFontClose", 0x1086,1}, + {L"NtGdiEnumFontOpen", 0x1087,7}, + {L"NtGdiEnumObjects", 0x1088,4}, + {L"NtGdiEqualRgn", 0x1089,2}, + {L"NtGdiEudcLoadUnloadLink", 0x108A,7}, + {L"NtGdiExcludeClipRect", 0x108B,5}, + {L"NtGdiExtCreatePen", 0x108C,11}, + {L"NtGdiExtCreateRegion", 0x108D,3}, + {L"NtGdiExtEscape", 0x108E,8}, + {L"NtGdiExtFloodFill", 0x108F,5}, + {L"NtGdiExtGetObjectW", 0x1090,3}, + {L"NtGdiExtSelectClipRgn", 0x1091,3}, + {L"NtGdiExtTextOutW", 0x1092,9}, + {L"NtGdiFillPath", 0x1093,1}, + {L"NtGdiFillRgn", 0x1094,3}, + {L"NtGdiFlattenPath", 0x1095,1}, + {L"NtGdiFlushUserBatch", 0x1096,0}, + {L"NtGdiFlush", 0x1097,0}, + {L"NtGdiForceUFIMapping", 0x1098,2}, + {L"NtGdiFrameRgn", 0x1099,5}, + {L"NtGdiFullscreenControl", 0x109A,5}, + {L"NtGdiGetAndSetDCDword", 0x109B,4}, + {L"NtGdiGetAppClipBox", 0x109C,2}, + {L"NtGdiGetBitmapBits", 0x109D,3}, + {L"NtGdiGetBitmapDimension", 0x109E,2}, + {L"NtGdiGetBoundsRect", 0x109F,3}, + {L"NtGdiGetCharABCWidthsW", 0x10A0,6}, + {L"NtGdiGetCharacterPlacementW", 0x10A1,6}, + {L"NtGdiGetCharSet", 0x10A2,1}, + {L"NtGdiGetCharWidthW", 0x10A3,6}, + {L"NtGdiGetCharWidthInfo", 0x10A4,2}, + {L"NtGdiGetColorAdjustment", 0x10A5,2}, + {L"NtGdiGetColorSpaceforBitmap", 0x10A6,1}, + {L"NtGdiGetDCDword", 0x10A7,3}, + {L"NtGdiGetDCforBitmap", 0x10A8,1}, + {L"NtGdiGetDCObject", 0x10A9,2}, + {L"NtGdiGetDCPoint", 0x10AA,3}, + {L"NtGdiGetDeviceCaps", 0x10AB,2}, + {L"NtGdiGetDeviceGammaRamp", 0x10AC,2}, + {L"NtGdiGetDeviceCapsAll", 0x10AD,2}, + {L"NtGdiGetDIBitsInternal", 0x10AE,9}, + {L"NtGdiGetETM", 0x10AF,2}, + {L"NtGdiGetEudcTimeStampEx", 0x10B0,3}, + {L"NtGdiGetFontData", 0x10B1,5}, + {L"NtGdiGetFontResourceInfoInternalW", 0x10B2,7}, + {L"NtGdiGetGlyphIndicesW", 0x10B3,5}, + {L"NtGdiGetGlyphIndicesWInternal", 0x10B4,6}, + {L"NtGdiGetGlyphOutline", 0x10B5,8}, + {L"NtGdiGetKerningPairs", 0x10B6,3}, + {L"NtGdiGetLinkedUFIs", 0x10B7,3}, + {L"NtGdiGetMiterLimit", 0x10B8,2}, + {L"NtGdiGetMonitorID", 0x10B9,3}, + {L"NtGdiGetNearestColor", 0x10BA,2}, + {L"NtGdiGetNearestPaletteIndex", 0x10BB,2}, + {L"NtGdiGetObjectBitmapHandle", 0x10BC,2}, + {L"NtGdiGetOutlineTextMetricsInternalW", 0x10BD,4}, + {L"NtGdiGetPath", 0x10BE,4}, + {L"NtGdiGetPixel", 0x10BF,3}, + {L"NtGdiGetRandomRgn", 0x10C0,3}, + {L"NtGdiGetRasterizerCaps", 0x10C1,2}, + {L"NtGdiGetRealizationInfo", 0x10C2,3}, + {L"NtGdiGetRegionData", 0x10C3,3}, + {L"NtGdiGetRgnBox", 0x10C4,2}, + {L"NtGdiGetServerMetaFileBits", 0x10C5,7}, + {L"NtGdiGetSpoolMessage", 0x10C6,4}, + {L"NtGdiGetStats", 0x10C7,5}, + {L"NtGdiGetStockObject", 0x10C8,1}, + {L"NtGdiGetStringBitmapW", 0x10C9,5}, + {L"NtGdiGetSystemPaletteUse", 0x10CA,1}, + {L"NtGdiGetTextCharsetInfo", 0x10CB,3}, + {L"NtGdiGetTextExtent", 0x10CC,5}, + {L"NtGdiGetTextExtentExW", 0x10CD,8}, + {L"NtGdiGetTextFaceW", 0x10CE,4}, + {L"NtGdiGetTextMetricsW", 0x10CF,3}, + {L"NtGdiGetTransform", 0x10D0,3}, + {L"NtGdiGetUFI", 0x10D1,6}, + {L"NtGdiGetEmbUFI", 0x10D2,7}, + {L"NtGdiGetUFIPathname", 0x10D3,10}, + {L"GreGetEmbedFonts", 0x10D4,0}, + {L"NtGdiChangeGhostFont", 0x10D5,2}, + {L"NtGdiAddEmbFontToDC", 0x10D6,2}, + {L"NtGdiGetFontUnicodeRanges", 0x10D7,2}, + {L"NtGdiGetWidthTable", 0x10D8,7}, + {L"NtGdiGradientFill", 0x10D9,6}, + {L"NtGdiHfontCreate", 0x10DA,5}, + {L"NtGdiIcmBrushInfo", 0x10DB,8}, + {L"NtGdiInit", 0x10DC,0}, + {L"NtGdiInitSpool", 0x10DD,0}, + {L"NtGdiIntersectClipRect", 0x10DE,5}, + {L"NtGdiInvertRgn", 0x10DF,2}, + {L"NtGdiLineTo", 0x10E0,3}, + {L"NtGdiMakeFontDir", 0x10E1,5}, + {L"NtGdiMakeInfoDC", 0x10E2,2}, + {L"NtGdiMaskBlt", 0x10E3,13}, + {L"NtGdiModifyWorldTransform", 0x10E4,3}, + {L"NtGdiMonoBitmap", 0x10E5,1}, + {L"NtGdiMoveTo", 0x10E6,4}, + {L"NtGdiOffsetClipRgn", 0x10E7,3}, + {L"NtGdiOffsetRgn", 0x10E8,3}, + {L"NtGdiOpenDCW", 0x10E9,7}, + {L"NtGdiPatBlt", 0x10EA,6}, + {L"NtGdiPolyPatBlt", 0x10EB,5}, + {L"NtGdiPathToRegion", 0x10EC,1}, + {L"NtGdiPlgBlt", 0x10ED,11}, + {L"NtGdiPolyDraw", 0x10EE,4}, + {L"NtGdiPolyPolyDraw", 0x10EF,5}, + {L"NtGdiPolyTextOutW", 0x10F0,4}, + {L"NtGdiPtInRegion", 0x10F1,3}, + {L"NtGdiPtVisible", 0x10F2,3}, + {L"NtGdiQueryFonts", 0x10F3,3}, + {L"NtGdiQueryFontAssocInfo", 0x10F4,1}, + {L"NtGdiRectangle", 0x10F5,5}, + {L"NtGdiRectInRegion", 0x10F6,2}, + {L"NtGdiRectVisible", 0x10F7,2}, + {L"NtGdiRemoveFontResourceW", 0x10F8,6}, + {L"NtGdiRemoveFontMemResourceEx", 0x10F9,1}, + {L"NtGdiResetDC", 0x10FA,5}, + {L"NtGdiResizePalette", 0x10FB,2}, + {L"NtGdiRestoreDC", 0x10FC,2}, + {L"NtGdiRoundRect", 0x10FD,7}, + {L"NtGdiSaveDC", 0x10FE,1}, + {L"NtGdiScaleViewportExtEx", 0x10FF,6}, + {L"NtGdiScaleWindowExtEx", 0x1100,6}, + {L"NtGdiSelectBitmap", 0x1101,2}, + {L"GreSelectBitmap", 0x1101,2}, + {L"NtGdiSelectBrush", 0x1102,2}, + {L"NtGdiSelectClipPath", 0x1103,2}, + {L"NtGdiSelectFont", 0x1104,2}, + {L"NtGdiSelectPen", 0x1105,2}, + {L"NtGdiSetBitmapAttributes", 0x1106,2}, + {L"NtGdiSetBitmapBits", 0x1107,3}, + {L"NtGdiSetBitmapDimension", 0x1108,4}, + {L"NtGdiSetBoundsRect", 0x1109,3}, + {L"NtGdiSetBrushAttributes", 0x110A,2}, + {L"NtGdiSetBrushOrg", 0x110B,4}, + {L"NtGdiSetColorAdjustment", 0x110C,2}, + {L"NtGdiSetColorSpace", 0x110D,2}, + {L"NtGdiSetDeviceGammaRamp", 0x110E,2}, + {L"NtGdiSetDIBitsToDeviceInternal", 0x110F,16}, + {L"NtGdiSetFontEnumeration", 0x1110,1}, + {L"NtGdiSetFontXform", 0x1111,3}, + {L"NtGdiSetIcmMode", 0x1112,3}, + {L"NtGdiSetLinkedUFIs", 0x1113,3}, + {L"NtGdiSetMagicColors", 0x1114,3}, + {L"NtGdiSetMetaRgn", 0x1115,1}, + {L"NtGdiSetMiterLimit", 0x1116,3}, + {L"NtGdiGetDeviceWidth", 0x1117,1}, + {L"NtGdiMirrorWindowOrg", 0x1118,1}, + {L"NtGdiSetLayout", 0x1119,3}, + {L"NtGdiSetPixel", 0x111A,4}, + {L"NtGdiSetPixelFormat", 0x111B,2}, + {L"NtGdiSetRectRgn", 0x111C,5}, + {L"NtGdiSetSystemPaletteUse", 0x111D,2}, + {L"NtGdiSetTextJustification", 0x111E,3}, + {L"NtGdiSetupPublicCFONT", 0x111F,3}, + {L"NtGdiSetVirtualResolution", 0x1120,5}, + {L"NtGdiSetSizeDevice", 0x1121,3}, + {L"NtGdiStartDoc", 0x1122,4}, + {L"NtGdiStartPage", 0x1123,1}, + {L"NtGdiStretchBlt", 0x1124,12}, + {L"NtGdiStretchDIBitsInternal", 0x1125, 16}, + {L"NtGdiStrokeAndFillPath", 0x1126,1}, + {L"NtGdiStrokePath", 0x1127,1}, + {L"NtGdiSwapBuffers", 0x1128,1}, + {L"NtGdiTransformPoints", 0x1129,5}, + {L"NtGdiTransparentBlt", 0x112A,11}, + {L"NtGdiUnloadPrinterDriver", 0x112B,2}, + {L"NtGdiUMPDEngFreeUserMem", 0x112C,1}, + {L"NtGdiUnmapMemFont", 0x112C,1}, + {L"NtGdiUnrealizeObject", 0x112D,1}, + {L"NtGdiUpdateColors", 0x112E,1}, + {L"NtGdiWidenPath", 0x112F,1}, + {L"NtUserActivateKeyboardLayout", 0x1130,2}, + {L"NtUserAlterWindowStyle", 0x1131,3}, + {L"NtUserAssociateInputContext", 0x1132,3}, + {L"NtUserAttachThreadInput", 0x1133,3}, + {L"NtUserBeginPaint", 0x1134,2}, + {L"NtUserBitBltSysBmp", 0x1135,8}, + {L"NtUserBlockInput", 0x1136,1}, + {L"NtUserBuildHimcList", 0x1137,4}, + {L"NtUserBuildHwndList", 0x1138,7}, + {L"NtUserBuildNameList", 0x1139,4}, + {L"NtUserBuildPropList", 0x113A,4}, + {L"NtUserCallHwnd", 0x113B,2}, + {L"NtUserCallHwndLock", 0x113C,2}, + {L"NtUserCallHwndOpt", 0x113D,2}, + {L"NtUserCallHwndParam", 0x113E,3}, + {L"NtUserCallHwndParamLock", 0x113F,3}, + {L"NtUserCallMsgFilter", 0x1140,2}, + {L"NtUserCallNextHookEx", 0x1141,4}, + {L"NtUserCallNoParam", 0x1142,1}, + {L"NtUserCallOneParam", 0x1143,2}, + {L"NtUserCallTwoParam", 0x1144,3}, + {L"NtUserChangeClipboardChain", 0x1145,2}, + {L"NtUserChangeDisplaySettings", 0x1146,5}, + {L"NtUserCheckImeHotKey", 0x1147,2}, + {L"NtUserCheckMenuItem", 0x1148,3}, + {L"NtUserChildWindowFromPointEx", 0x1149,4}, + {L"NtUserClipCursor", 0x114A,1}, + {L"NtUserCloseClipboard", 0x114B,0}, + {L"NtUserCloseDesktop", 0x114C,1}, + {L"NtUserCloseWindowStation", 0x114D,1}, + {L"NtUserConsoleControl", 0x114E,3}, + {L"NtUserConvertMemHandle", 0x114F,2}, + {L"NtUserCopyAcceleratorTable", 0x1150,3}, + {L"NtUserCountClipboardFormats", 0x1151,0}, + {L"NtUserCreateAcceleratorTable", 0x1152,2}, + {L"NtUserCreateCaret", 0x1153,4}, + {L"NtUserCreateDesktop", 0x1154,5}, + {L"NtUserCreateInputContext", 0x1155,1}, + {L"NtUserCreateLocalMemHandle", 0x1156,4}, + {L"NtUserCreateWindowEx", 0x1157,16}, + {L"NtUserCreateWindowStation", 0x1158,7}, + {L"NtUserDdeGetQualityOfService", 0x1159,3}, + {L"NtUserDdeInitialize", 0x115A,5}, + {L"NtUserDdeSetQualityOfService", 0x115B,3}, + {L"NtUserDeferWindowPos", 0x115C,8}, + {L"NtUserDefSetText", 0x115D,2}, + {L"NtUserDeleteMenu", 0x115E,3}, + {L"NtUserDestroyAcceleratorTable", 0x115F,1}, + {L"NtUserDestroyCursor", 0x1160,2}, + {L"NtUserDestroyInputContext", 0x1161,1}, + {L"NtUserDestroyMenu", 0x1162,1}, + {L"NtUserDestroyWindow", 0x1163,1}, + {L"NtUserDisableThreadIme", 0x1164,1}, + {L"NtUserDispatchMessage", 0x1165,1}, + {L"NtUserDragDetect", 0x1166,3}, + {L"NtUserDragObject", 0x1167,5}, + {L"NtUserDrawAnimatedRects", 0x1168,4}, + {L"NtUserDrawCaption", 0x1169,4}, + {L"NtUserDrawCaptionTemp", 0x116A,7}, + {L"NtUserDrawIconEx", 0x116B,11}, + {L"NtUserDrawMenuBarTemp", 0x116C,5}, + {L"NtUserEmptyClipboard", 0x116D,0}, + {L"NtUserEnableMenuItem", 0x116E,3}, + {L"NtUserEnableScrollBar", 0x116F,3}, + {L"NtUserEndDeferWindowPosEx", 0x1170,2}, + {L"NtUserEndMenu", 0x1171,0}, + {L"NtUserEndPaint", 0x1172,2}, + {L"NtUserEnumDisplayDevices", 0x1173,4}, + {L"NtUserEnumDisplayMonitors", 0x1174,4}, + {L"NtUserEnumDisplaySettings", 0x1175,4}, + {L"NtUserEvent", 0x1176,1}, + {L"NtUserExcludeUpdateRgn", 0x1177,2}, + {L"NtUserFillWindow", 0x1178,4}, + {L"NtUserFindExistingCursorIcon", 0x1179,3}, + {L"NtUserFindWindowEx", 0x117A,5}, + {L"NtUserFlashWindowEx", 0x117B,1}, + {L"NtUserGetAltTabInfo", 0x117C,6}, + {L"NtUserGetAncestor", 0x117D,2}, + {L"NtUserGetAppImeLevel", 0x117E,1}, + {L"NtUserGetAsyncKeyState", 0x117F,1}, + {L"NtUserGetAtomName", 0x1180,2}, + {L"NtUserGetCaretBlinkTime", 0x1181,0}, + {L"NtUserGetCaretPos", 0x1182,1}, + {L"NtUserGetClassInfo", 0x1183,5}, + {L"NtUserGetClassName", 0x1184,3}, + {L"NtUserGetClipboardData", 0x1185,2}, + {L"NtUserGetClipboardFormatName", 0x1186,3}, + {L"NtUserGetClipboardOwner", 0x1187,0}, + {L"NtUserGetClipboardSequenceNumber", 0x1188,0}, + {L"NtUserGetClipboardViewer", 0x1189,0}, + {L"NtUserGetClipCursor", 0x118A,1}, + {L"NtUserGetComboBoxInfo", 0x118B,2}, + {L"NtUserGetControlBrush", 0x118C,3}, + {L"NtUserGetControlColor", 0x118D,4}, + {L"NtUserGetCPD", 0x118E,3}, + {L"NtUserGetCursorFrameInfo", 0x118F,4}, + {L"NtUserGetCursorInfo", 0x1190,1}, + {L"NtUserGetDC", 0x1191,1}, + {L"NtUserGetDCEx", 0x1192,3}, + {L"NtUserGetDoubleClickTime", 0x1193,0}, + {L"NtUserGetForegroundWindow", 0x1194,0}, + {L"NtUserGetGuiResources", 0x1195,2}, + {L"NtUserGetGUIThreadInfo", 0x1196,2}, + {L"NtUserGetIconInfo", 0x1197,6}, + {L"NtUserGetIconSize", 0x1198,4}, + {L"NtUserGetImeHotKey", 0x1199,4}, + {L"NtUserGetImeInfoEx", 0x119A,2}, + {L"NtUserGetInternalWindowPos", 0x119B,3}, + {L"NtUserGetKeyboardLayoutList", 0x119C,2}, + {L"NtUserGetKeyboardLayoutName", 0x119D,1}, + {L"NtUserGetKeyboardState", 0x119E,1}, + {L"NtUserGetKeyNameText", 0x119F,3}, + {L"NtUserGetKeyState", 0x11A0,1}, + {L"NtUserGetListBoxInfo", 0x11A1,1}, + {L"NtUserGetMenuBarInfo", 0x11A2,4}, + {L"NtUserGetMenuIndex", 0x11A3,2}, + {L"NtUserGetMenuItemRect", 0x11A4,4}, + {L"NtUserGetMessage", 0x11A5,4}, + {L"NtUserGetMouseMovePointsEx", 0x11A6,5}, + {L"NtUserGetObjectInformation", 0x11A7,5}, + {L"NtUserGetOpenClipboardWindow", 0x11A8,0}, + {L"NtUserGetPriorityClipboardFormat", 0x11A9,2}, + {L"NtUserGetProcessWindowStation", 0x11AA,0}, + {L"NtUserGetRawInputBuffer", 0x11AB,3}, + {L"NtUserGetRawInputData", 0x11AC,5}, + {L"NtUserGetRawInputDeviceInfo", 0x11AD,4}, + {L"NtUserGetRawInputDeviceList", 0x11AE,3}, + {L"NtUserGetRegisteredRawInputDevices", 0x11AF,3}, + {L"NtUserGetScrollBarInfo", 0x11B0,3}, + {L"NtUserGetSystemMenu", 0x11B1,2}, + {L"NtUserGetThreadDesktop", 0x11B2,2}, + {L"NtUserGetThreadState", 0x11B3,1}, + {L"NtUserGetTitleBarInfo", 0x11B4,2}, + {L"NtUserGetUpdateRect", 0x11B5,3}, + {L"NtUserGetUpdateRgn", 0x11B6,3}, + {L"NtUserGetWindowDC", 0x11B7,1}, + {L"NtUserGetWindowPlacement", 0x11B8,2}, + {L"NtUserGetWOWClass", 0x11B9,2}, + {L"NtUserHardErrorControl", 0x11BA,3}, + {L"NtUserHideCaret", 0x11BB,1}, + {L"NtUserHiliteMenuItem", 0x11BC,4}, + {L"NtUserImpersonateDdeClientWindow", 0x11BD,2}, + {L"NtUserInitialize", 0x11BE,3}, + {L"NtUserInitializeClientPfnArrays", 0x11BF,4}, + {L"NtUserInitTask", 0x11C0,12}, + {L"NtUserInternalGetWindowText", 0x11C1,3}, + {L"NtUserInvalidateRect", 0x11C2,3}, + {L"NtUserInvalidateRgn", 0x11C3,3}, + {L"NtUserIsClipboardFormatAvailable", 0x11C4,1}, + {L"NtUserKillTimer", 0x11C5,2}, + {L"NtUserLoadKeyboardLayoutEx", 0x11C6,7}, + {L"NtUserLockWindowStation", 0x11C7,1}, + {L"NtUserLockWindowUpdate", 0x11C8,1}, + {L"NtUserLockWorkStation", 0x11C9,0}, + {L"NtUserMapVirtualKeyEx", 0x11CA,4}, + {L"NtUserMenuItemFromPoint", 0x11CB,4}, + {L"NtUserMessageCall", 0x11CC,7}, + {L"NtUserMinMaximize", 0x11CD,3}, + {L"NtUserMNDragLeave", 0x11CE,0}, + {L"NtUserMNDragOver", 0x11CF,2}, + {L"NtUserModifyUserStartupInfoFlags", 0x11D0,2}, + {L"NtUserMoveWindow", 0x11D1,6}, + {L"NtUserNotifyIMEStatus", 0x11D2,3}, + {L"NtUserNotifyProcessCreate", 0x11D3,4}, + {L"NtUserNotifyWinEvent", 0x11D4,4}, + {L"NtUserOpenClipboard", 0x11D5,2}, + {L"NtUserOpenDesktop", 0x11D6,3}, + {L"NtUserOpenInputDesktop", 0x11D7,3}, + {L"NtUserOpenWindowStation", 0x11D8,2}, + {L"NtUserPaintDesktop", 0x11D9,1}, + {L"NtUserPeekMessage", 0x11DA,5}, + {L"NtUserPostMessage", 0x11DB,4}, + {L"NtUserPostThreadMessage", 0x11DC,4}, + {L"NtUserPrintWindow", 0x11DD,3}, + {L"NtUserProcessConnect", 0x11DE,3}, + {L"NtUserQueryInformationThread", 0x11DF,5}, + {L"NtUserQueryInputContext", 0x11E0,2}, + {L"NtUserQuerySendMessage", 0x11E1,1}, + {L"NtUserQueryUserCounters", 0x11E2,5}, + {L"NtUserQueryWindow", 0x11E3,2}, + {L"NtUserRealChildWindowFromPoint", 0x11E4,3}, + {L"NtUserRealInternalGetMessage", 0x11E5,6}, + {L"NtUserRealWaitMessageEx", 0x11E6,2}, + {L"NtUserRedrawWindow", 0x11E7,4}, + {L"NtUserRegisterClassExWOW", 0x11E8,7}, + {L"NtUserRegisterUserApiHook", 0x11E9,2}, + {L"NtUserRegisterHotKey", 0x11EA,4}, + {L"NtUserRegisterRawInputDevices", 0x11EB,3}, + {L"NtUserRegisterTasklist", 0x11EC,1}, + {L"NtUserRegisterWindowMessage", 0x11ED,1}, + {L"NtUserRemoveMenu", 0x11EE,3}, + {L"NtUserRemoveProp", 0x11EF,2}, + {L"NtUserResolveDesktop", 0x11F0,4}, + {L"NtUserResolveDesktopForWOW", 0x11F1,1}, + {L"NtUserSBGetParms", 0x11F2,4}, + {L"NtUserScrollDC", 0x11F3,7}, + {L"NtUserScrollWindowEx", 0x11F4,8}, + {L"NtUserSelectPalette", 0x11F5,3}, + {L"NtUserSendInput", 0x11F6,3}, + {L"NtUserSetActiveWindow", 0x11F7,1}, + {L"NtUserSetAppImeLevel", 0x11F8,2}, + {L"NtUserSetCapture", 0x11F9,1}, + {L"NtUserSetClassLong", 0x11FA,4}, + {L"NtUserSetClassWord", 0x11FB,3}, + {L"NtUserSetClipboardData", 0x11FC,3}, + {L"NtUserSetClipboardViewer", 0x11FD,1}, + {L"NtUserSetConsoleReserveKeys", 0x11FE,2}, + {L"NtUserSetCursor", 0x11FF,1}, + {L"NtUserSetCursorContents", 0x1200,2}, + {L"NtUserSetCursorIconData", 0x1201,4}, + {L"NtUserSetDbgTag", 0x1202,2}, + {L"NtUserSetFocus", 0x1203,1}, + {L"NtUserSetImeHotKey", 0x1204,5}, + {L"NtUserSetImeInfoEx", 0x1205,1}, + {L"NtUserSetImeOwnerWindow", 0x1206,2}, + {L"NtUserSetInformationProcess", 0x1207,4}, + {L"NtUserSetInformationThread", 0x1208,4}, + {L"NtUserSetInternalWindowPos", 0x1209,4}, + {L"NtUserSetKeyboardState", 0x120A,1}, + {L"NtUserSetLogonNotifyWindow", 0x120B,1}, + {L"NtUserSetMenu", 0x120C,3}, + {L"NtUserSetMenuContextHelpId", 0x120D,2}, + {L"NtUserSetMenuDefaultItem", 0x120E,3}, + {L"NtUserSetMenuFlagRtoL", 0x120F,1}, + {L"NtUserSetObjectInformation", 0x1210,4}, + {L"NtUserSetParent", 0x1211,2}, + {L"NtUserSetProcessWindowStation", 0x1212,1}, + {L"NtUserSetProp", 0x1213,3}, + {L"NtUserSetRipFlags", 0x1214,2}, + {L"NtUserSetScrollInfo", 0x1215,4}, + {L"NtUserSetShellWindowEx", 0x1216,2}, + {L"NtUserSetSysColors", 0x1217,4}, + {L"NtUserSetSystemCursor", 0x1218,2}, + {L"NtUserSetSystemMenu", 0x1219,2}, + {L"NtUserSetSystemTimer", 0x121A,4}, + {L"NtUserSetThreadDesktop", 0x121B,1}, + {L"NtUserSetThreadLayoutHandles", 0x121C,2}, + {L"NtUserSetThreadState", 0x121D,2}, + {L"NtUserSetTimer", 0x121E,4}, + {L"NtUserSetWindowFNID", 0x121F,2}, + {L"NtUserSetWindowLong", 0x1220,4}, + {L"NtUserSetWindowPlacement", 0x1221,2}, + {L"NtUserSetWindowPos", 0x1222,7}, + {L"NtUserSetWindowRgn", 0x1223,3}, + {L"NtUserSetWindowsHookAW", 0x1224,3}, + {L"NtUserSetWindowsHookEx", 0x1225,6}, + {L"NtUserSetWindowStationUser", 0x1226,4}, + {L"NtUserSetWindowWord", 0x1227,3}, + {L"NtUserSetWinEventHook", 0x1228,8}, + {L"NtUserShowCaret", 0x1229,1}, + {L"NtUserShowScrollBar", 0x122A,3}, + {L"NtUserShowWindow", 0x122B,2}, + {L"NtUserShowWindowAsync", 0x122C,2}, + {L"NtUserSoundSentry", 0x122D,0}, + {L"NtUserSwitchDesktop", 0x122E,1}, + {L"NtUserSystemParametersInfo", 0x122F,4}, + {L"NtUserTestForInteractiveUser", 0x1230,1}, + {L"NtUserThunkedMenuInfo", 0x1231,2}, + {L"NtUserThunkedMenuItemInfo", 0x1232,6}, + {L"NtUserToUnicodeEx", 0x1233,7}, + {L"NtUserTrackMouseEvent", 0x1234,1}, + {L"NtUserTrackPopupMenuEx", 0x1235,6}, + {L"NtUserCalcMenuBar", 0x1236,5}, + {L"NtUserPaintMenuBar", 0x1237,6}, + {L"NtUserTranslateAccelerator", 0x1238,3}, + {L"NtUserTranslateMessage", 0x1239,2}, + {L"NtUserUnhookWindowsHookEx", 0x123A,1}, + {L"NtUserUnhookWinEvent", 0x123B,1}, + {L"NtUserUnloadKeyboardLayout", 0x123C,1}, + {L"NtUserUnlockWindowStation", 0x123D,1}, + {L"NtUserUnregisterClass", 0x123E,3}, + {L"NtUserUnregisterUserApiHook", 0x123F,0}, + {L"NtUserUnregisterHotKey", 0x1240,2}, + {L"NtUserUpdateInputContext", 0x1241,3}, + {L"NtUserUpdateInstance", 0x1242,3}, + {L"NtUserUpdateLayeredWindow", 0x1243,9}, + {L"NtUserGetLayeredWindowAttributes", 0x1244,4}, + {L"NtUserSetLayeredWindowAttributes", 0x1245,4}, + {L"NtUserUpdatePerUserSystemParameters", 0x1246,2}, + {L"NtUserUserHandleGrantAccess", 0x1247,3}, + {L"NtUserValidateHandleSecure", 0x1248,1}, + {L"NtUserValidateRect", 0x1249,2}, + {L"Nt_Unknown", 0x124a, 3}, + {L"NtUserVkKeyScanEx", 0x124b,3}, + {L"NtUserWaitForInputIdle", 0x124c,3}, + {L"NtUserWaitForMsgAndEvent", 0x124d,1}, + {L"NtUserWaitMessage", 0x124e,0}, + {L"NtUserWin32PoolAllocationStats", 0x124f,6}, + {L"NtUserWindowFromPoint", 0x1250,2}, + {L"NtUserYieldTask", 0x1251,0}, + {L"NtUserRemoteConnect", 0x1252,3}, + {L"NtUserRemoteRedrawRectangle", 0x1253,4}, + {L"NtUserRemoteRedrawScreen", 0x1254,0}, + {L"NtUserRemoteStopScreenUpdates", 0x1255,0}, + {L"NtUserCtxDisplayIOCtl", 0x1256,3}, + {L"NtGdiEngAssociateSurface", 0x1257,3}, + {L"NtGdiEngCreateBitmap", 0x1258,6}, + {L"NtGdiEngCreateDeviceSurface", 0x1259,4}, + {L"NtGdiEngCreateDeviceBitmap", 0x125a,4}, + {L"NtGdiEngCreatePalette", 0x125b,6}, + {L"NtGdiEngComputeGlyphSet", 0x125c,3}, + {L"NtGdiEngCopyBits", 0x125d,6}, + {L"NtGdiEngDeletePalette", 0x125e,1}, + {L"NtGdiEngDeleteSurface", 0x125f,1}, + {L"NtGdiEngEraseSurface", 0x1260,3}, + {L"NtGdiEngUnlockSurface", 0x1261,1}, + {L"NtGdiEngLockSurface", 0x1262,1}, + {L"NtGdiEngBitBlt", 0x1263,11}, + {L"NtGdiEngStretchBlt", 0x1264,11}, + {L"NtGdiEngPlgBlt", 0x1265,11}, + {L"NtGdiEngMarkBandingSurface", 0x1266,1}, + {L"NtGdiEngStrokePath", 0x1267,8}, + {L"NtGdiEngFillPath", 0x1268,7}, + {L"NtGdiEngStrokeAndFillPath", 0x1269,10}, + {L"NtGdiEngPaint", 0x126a,5}, + {L"NtGdiEngLineTo", 0x126b,9}, + {L"NtGdiEngAlphaBlend", 0x126c,7}, + {L"NtGdiEngGradientFill", 0x126d,10}, + {L"NtGdiEngTransparentBlt", 0x126e,8}, + {L"NtGdiEngTextOut", 0x126f,10}, + {L"NtGdiEngStretchBltROP", 0x1270,13}, + {L"NtGdiXLATEOBJ_cGetPalette", 0x1271,4}, + {L"NtGdiXLATEOBJ_iXlate", 0x1272,2}, + {L"NtGdiXLATEOBJ_hGetColorTransform", 0x1273,1}, + {L"NtGdiCLIPOBJ_bEnum", 0x1274,3}, + {L"NtGdiCLIPOBJ_cEnumStart", 0x1275,5}, + {L"NtGdiCLIPOBJ_ppoGetPath", 0x1276,1}, + {L"NtGdiEngDeletePath", 0x1277,1}, + {L"NtGdiEngCreateClip", 0x1278,0}, + {L"NtGdiEngDeleteClip", 0x1279,1}, + {L"NtGdiBRUSHOBJ_ulGetBrushColor", 0x127a,1}, + {L"NtGdiBRUSHOBJ_pvAllocRbrush", 0x127b,2}, + {L"NtGdiBRUSHOBJ_pvGetRbrush", 0x127c,1}, + {L"NtGdiBRUSHOBJ_hGetColorTransform", 0x127d,1}, + {L"NtGdiXFORMOBJ_bApplyXform", 0x127e,5}, + {L"NtGdiXFORMOBJ_iGetXform", 0x127f,2}, + {L"NtGdiFONTOBJ_vGetInfo", 0x1280,3}, + {L"NtGdiFONTOBJ_pxoGetXform", 0x1281,1}, + {L"NtGdiFONTOBJ_cGetGlyphs", 0x1282,5}, + {L"NtGdiFONTOBJ_pifi", 0x1283,1}, + {L"NtGdiFONTOBJ_pfdg", 0x1284,1}, + {L"NtGdiFONTOBJ_pQueryGlyphAttrs", 0x1285,2}, + {L"NtGdiFONTOBJ_pvTrueTypeFontFile", 0x1286,2}, + {L"NtGdiFONTOBJ_cGetAllGlyphHandles", 0x1287,2}, + {L"NtGdiSTROBJ_bEnum", 0x1288,3}, + {L"NtGdiSTROBJ_bEnumPositionsOnly", 0x1289,3}, + {L"NtGdiSTROBJ_bGetAdvanceWidths", 0x128a,4}, + {L"NtGdiSTROBJ_vEnumStart", 0x128b,1}, + {L"NtGdiSTROBJ_dwGetCodePage", 0x128c,1}, + {L"NtGdiPATHOBJ_vGetBounds", 0x128d,2}, + {L"NtGdiPATHOBJ_bEnum", 0x128e,2}, + {L"NtGdiPATHOBJ_vEnumStart", 0x128f,1}, + {L"NtGdiPATHOBJ_vEnumStartClipLines", 0x1290,4}, + {L"NtGdiPATHOBJ_bEnumClipLines", 0x1291,3}, + {L"NtGdiGetDhpdev", 0x1292,1}, + {L"NtGdiEngCheckAbort", 0x1293,1}, + {L"NtGdiHT_Get8BPPFormatPalette", 0x1294,4}, + {L"NtGdiHT_Get8BPPMaskPalette", 0x1295,6}, + {L"NtGdiUpdateTransform", 0x1296,1}, + {L"NtGdiSetPUMPDOBJ", 0x1297,4}, + {L"NtGdiBRUSHOBJ_DeleteRbrush", 0x1298,2}, + {L"NtGdiUMPDEngFreeUserMem", 0x1299,1}, + {L"NtGdiDrawStream", 0x129a,3}, + {NULL, 0, 0} +}; + diff --git a/rostests/directory.rbuild b/rostests/directory.rbuild index 0b87837d577..eb260a4f3e6 100644 --- a/rostests/directory.rbuild +++ b/rostests/directory.rbuild @@ -16,3 +16,6 @@ + + +