an API test kit + win32k native API test app.

It does syscalls on ros by linking to w32kdll.dll
On windows it uses syscall tables (only winxp sp2 available atm)

svn path=/trunk/; revision=28106
This commit is contained in:
Timo Kreuzer 2007-08-02 21:42:37 +00:00
parent 24de999ac2
commit 603ac00e50
19 changed files with 2122 additions and 0 deletions

View file

@ -0,0 +1,98 @@
#include "apitest.h"
void
OutputUsage(LPWSTR pszExe)
{
printf("\nUsage:\n\n");
printf("%ls <TestName> - 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;
}

View file

@ -0,0 +1,85 @@
#ifndef _APITEST_H
#define _APITEST_H
#define WINVER 0x501
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include <windows.h>
/* 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 */

View file

@ -0,0 +1,8 @@
<directory name="w32kdll">
<xi:include href="w32kdll/w32kdll.rbuild" />
</directory>
<directory name="w32knapi">
<xi:include href="w32knapi/w32knapi.rbuild" />
</directory>

View file

@ -0,0 +1,31 @@
#include <windows.h>
#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
}

View file

@ -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

View file

@ -0,0 +1,7 @@
<module name="w32kdll" type="win32dll" entrypoint="0" installname="w32kdll.dll">
<importlibrary definition="w32kdll.def" />
<define name="__USE_W32API" />
<define name="_WIN32_WINNT">0x0502</define>
<library>win32ksys</library>
<file>main.c</file>
</module>

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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);
}

View file

@ -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;
}

View file

@ -0,0 +1,28 @@
#ifndef _W32KNAPI_H
#define _W32KNAPI_H
#include "..\apitest.h"
#include <ddk/winddi.h>
#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 */

View file

@ -0,0 +1,13 @@
<module name="w32knapi" type="win32cui">
<include base="w32knapi">.</include>
<define name="__USE_W32API" />
<define name="_WIN32_WINNT">0x0501</define>
<library>kernel32</library>
<library>user32</library>
<library>gdi32</library>
<library>shell32</library>
<file>w32knapi.c</file>
<file>testlist.c</file>
<file>xp-2600.c</file>
<file>..\apitest.c</file>
</module>

View file

@ -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}
};

View file

@ -16,3 +16,6 @@
<directory name="winetests"> <directory name="winetests">
<xi:include href="winetests/directory.rbuild" /> <xi:include href="winetests/directory.rbuild" />
</directory> </directory>
<directory name="apitests">
<xi:include href="apitests/directory.rbuild" />
</directory>