diff --git a/rosapps/dxtest/win32kdxtest/NtGdiDdCreateDirectDrawObject.c b/rosapps/dxtest/win32kdxtest/NtGdiDdCreateDirectDrawObject.c new file mode 100644 index 00000000000..fe0f43a93ef --- /dev/null +++ b/rosapps/dxtest/win32kdxtest/NtGdiDdCreateDirectDrawObject.c @@ -0,0 +1,33 @@ +#include +/* SDK/DDK/NDK Headers. */ +#include +#include +#include +#include +#include +#include "test.h" + + +/* + * Test see if we getting a DirectDrawObject from win32k + * + */ +HANDLE +test_NtGdiDdCreateDirectDrawObject() +{ + HANDLE retValue=0; + int fails=0; + HDC hdc=CreateDCW(L"Display",NULL,NULL,NULL); + + printf("Start testing of NtGdiDdCreateDirectDrawObject\n"); + + retValue = OsThunkDdCreateDirectDrawObject(NULL); + testing_noteq(retValue,NULL,fails,"NtGdiDdCreateDirectDrawObject(NULL);\0"); + + retValue = OsThunkDdCreateDirectDrawObject(hdc); + testing_eq(retValue,NULL,fails,"NtGdiDdCreateDirectDrawObject(hdc);\0"); + + show_status(fails, "NtGdiDdCreateDirectDrawObject\0"); + + return retValue; +} diff --git a/rosapps/dxtest/win32kdxtest/NtGdiDdDeleteDirectDrawObject.c b/rosapps/dxtest/win32kdxtest/NtGdiDdDeleteDirectDrawObject.c new file mode 100644 index 00000000000..ed3a36c9afc --- /dev/null +++ b/rosapps/dxtest/win32kdxtest/NtGdiDdDeleteDirectDrawObject.c @@ -0,0 +1,28 @@ +#include +/* SDK/DDK/NDK Headers. */ +#include +#include +#include +#include +#include +#include "test.h" + +/* + * Test see if we can delete a DirectDrawObject from win32k + * + */ +void +test_NtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal) +{ + int fails=0; + BOOL retValue=FALSE; + printf("Start testing of NtGdiDdDeleteDirectDrawObject\n"); + + retValue = OsThunkDdDeleteDirectDrawObject(hDirectDrawLocal); + testing_eq(retValue,FALSE,fails,"NtGdiDdDeleteDirectDrawObject(hDirectDrawLocal);\0"); + + retValue = OsThunkDdDeleteDirectDrawObject(NULL); + testing_eq(retValue,TRUE,fails,"NtGdiDdDeleteDirectDrawObject(NULL);\0"); + + show_status(fails, "NtGdiDdDeleteDirectDrawObject\0"); +} \ No newline at end of file diff --git a/rosapps/dxtest/win32kdxtest/NtGdiDdQueryDirectDrawObject.c b/rosapps/dxtest/win32kdxtest/NtGdiDdQueryDirectDrawObject.c new file mode 100644 index 00000000000..1c8b5e154de --- /dev/null +++ b/rosapps/dxtest/win32kdxtest/NtGdiDdQueryDirectDrawObject.c @@ -0,0 +1,251 @@ +#include +/* SDK/DDK/NDK Headers. */ +#include +#include +#include +#include +#include +#include "test.h" + +extern BOOL dumping_on; + +/* + * Test see if we can setup DirectDrawObject + * + */ +void +test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal) +{ + int fails=0; + BOOL retValue=FALSE; + + DD_HALINFO *pHalInfo = NULL; + DWORD *pCallBackFlags = NULL; + LPD3DNTHAL_CALLBACKS puD3dCallbacks = NULL; + LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData = NULL; + PDD_D3DBUFCALLBACKS puD3dBufferCallbacks = NULL; + LPDDSURFACEDESC puD3dTextureFormats = NULL; + DWORD *puNumHeaps = NULL; + VIDEOMEMORY *puvmList = NULL; + DWORD *puNumFourCC = NULL; + DWORD *puFourCC = NULL; + + DD_HALINFO HalInfo; + DWORD CallBackFlags[4]; + D3DNTHAL_CALLBACKS D3dCallbacks; + D3DNTHAL_GLOBALDRIVERDATA D3dDriverData; + DD_D3DBUFCALLBACKS D3dBufferCallbacks; + DDSURFACEDESC2 D3dTextureFormats[100]; + // DWORD NumHeaps = 0; + VIDEOMEMORY vmList; + // DWORD NumFourCC = 0; + //DWORD FourCC = 0; + + /* clear data */ + memset(&vmList,0,sizeof(VIDEOMEMORY)); + memset(&D3dTextureFormats,0,sizeof(DDSURFACEDESC)); + memset(&D3dBufferCallbacks,0,sizeof(DD_D3DBUFCALLBACKS)); + memset(&D3dDriverData,0,sizeof(D3DNTHAL_GLOBALDRIVERDATA)); + memset(&D3dCallbacks,0,sizeof(D3DNTHAL_CALLBACKS)); + memset(&HalInfo,0,sizeof(DD_HALINFO)); + memset(CallBackFlags,0,sizeof(DWORD)*3); + + printf("Start testing of NtGdiDdQueryDirectDrawObject\n"); + + /* testing OsThunkDdQueryDirectDrawObject( NULL, .... */ + printf("testing DdQueryDirectDrawObject( NULL, ....)\n"); + + retValue = OsThunkDdQueryDirectDrawObject( NULL, pHalInfo, + pCallBackFlags, puD3dCallbacks, + puD3dDriverData, puD3dBufferCallbacks, + puD3dTextureFormats, puNumHeaps, + puvmList, puNumFourCC, + puFourCC); + testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); + testing_noteq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); + testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); + testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); + testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); + testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); + testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); + testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); + testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); + + /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, NULL, .... */ + printf("testing DdQueryDirectDrawObject( hDD, NULL, ....)\n"); + + retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, + pCallBackFlags, puD3dCallbacks, + puD3dDriverData, puD3dBufferCallbacks, + puD3dTextureFormats, puNumHeaps, + puvmList, puNumFourCC, + puFourCC); + + testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); + testing_noteq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); + testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); + testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); + testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); + testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); + testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); + testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); + testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); + + /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, NULL, .... */ + printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, NULL, ....)\n"); + + pHalInfo = &HalInfo; + retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, + pCallBackFlags, puD3dCallbacks, + puD3dDriverData, puD3dBufferCallbacks, + puD3dTextureFormats, puNumHeaps, + puvmList, puNumFourCC, + puFourCC); + + testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); + testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); + testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); + testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); + testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); + testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); + testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); + testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); + testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); + + if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && + (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) + { + printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\n"); + fails++; + } + + if (dumping_on == TRUE) + { + dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...)"); + } + + /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */ + printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, NULL, ....)\n"); + + pHalInfo = &HalInfo; + pCallBackFlags = CallBackFlags; + + RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); + + retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, + pCallBackFlags, puD3dCallbacks, + puD3dDriverData, puD3dBufferCallbacks, + puD3dTextureFormats, puNumHeaps, + puvmList, puNumFourCC, + puFourCC); + + testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); + testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); + testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); + testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); + testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); + testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); + testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); + testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); + testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); + if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && + (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) + { + printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\n"); + fails++; + } + + if (dumping_on == TRUE) + { + dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + } + + /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */ + printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ....)\n"); + + pHalInfo = &HalInfo; + pCallBackFlags = CallBackFlags; + puD3dCallbacks = &D3dCallbacks; + + RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); + RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3); + + retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, + pCallBackFlags, puD3dCallbacks, + puD3dDriverData, puD3dBufferCallbacks, + puD3dTextureFormats, puNumHeaps, + puvmList, puNumFourCC, + puFourCC); + + testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + + testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && + (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) + { + printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\n"); + fails++; + } + + if (dumping_on == TRUE) + { + dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + /* FIXME dump puD3dCallbacks */ + } + + /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */ + printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ....)\n"); + + pHalInfo = &HalInfo; + pCallBackFlags = CallBackFlags; + puD3dCallbacks = &D3dCallbacks; + puD3dDriverData = &D3dDriverData; + + RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); + RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3); + RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS)); + + retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, + pCallBackFlags, puD3dCallbacks, + puD3dDriverData, puD3dBufferCallbacks, + puD3dTextureFormats, puNumHeaps, + puvmList, puNumFourCC, + puFourCC); + + testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); + testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); + testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); + testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); + + testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); + + testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); + testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); + testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); + testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); + if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && + (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) + { + printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\n"); + fails++; + } + + if (dumping_on == TRUE) + { + dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + /* FIXME dump puD3dCallbacks */ + /* FIXME dump puD3dDriverData */ + } + + show_status(fails, "NtGdiDdQueryDirectDrawObject\0"); +} \ No newline at end of file diff --git a/rosapps/dxtest/win32kdxtest/main.c b/rosapps/dxtest/win32kdxtest/main.c index 22350d910c2..487bc81db55 100644 --- a/rosapps/dxtest/win32kdxtest/main.c +++ b/rosapps/dxtest/win32kdxtest/main.c @@ -42,290 +42,10 @@ int main(int argc, char **argv) return 0; } -/* - * Test see if we getting a DirectDrawObject from win32k - * - */ -HANDLE -test_NtGdiDdCreateDirectDrawObject() -{ - HANDLE retValue=0; - int fails=0; - HDC hdc=CreateDCW(L"Display",NULL,NULL,NULL); - - printf("Start testing of NtGdiDdCreateDirectDrawObject\n"); - - retValue = OsThunkDdCreateDirectDrawObject(NULL); - testing_noteq(retValue,NULL,fails,"NtGdiDdCreateDirectDrawObject(NULL);\0"); - - retValue = OsThunkDdCreateDirectDrawObject(hdc); - testing_eq(retValue,NULL,fails,"NtGdiDdCreateDirectDrawObject(hdc);\0"); - - show_status(fails, "NtGdiDdCreateDirectDrawObject\0"); - - return retValue; -} - -/* - * Test see if we can setup DirectDrawObject - * - */ -void -test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal) -{ - int fails=0; - BOOL retValue=FALSE; - - DD_HALINFO *pHalInfo = NULL; - DWORD *pCallBackFlags = NULL; - LPD3DNTHAL_CALLBACKS puD3dCallbacks = NULL; - LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData = NULL; - PDD_D3DBUFCALLBACKS puD3dBufferCallbacks = NULL; - LPDDSURFACEDESC puD3dTextureFormats = NULL; - DWORD *puNumHeaps = NULL; - VIDEOMEMORY *puvmList = NULL; - DWORD *puNumFourCC = NULL; - DWORD *puFourCC = NULL; - - DD_HALINFO HalInfo; - DWORD CallBackFlags[4]; - D3DNTHAL_CALLBACKS D3dCallbacks; - D3DNTHAL_GLOBALDRIVERDATA D3dDriverData; - DD_D3DBUFCALLBACKS D3dBufferCallbacks; - DDSURFACEDESC2 D3dTextureFormats[100]; - // DWORD NumHeaps = 0; - VIDEOMEMORY vmList; - // DWORD NumFourCC = 0; - //DWORD FourCC = 0; - - /* clear data */ - memset(&vmList,0,sizeof(VIDEOMEMORY)); - memset(&D3dTextureFormats,0,sizeof(DDSURFACEDESC)); - memset(&D3dBufferCallbacks,0,sizeof(DD_D3DBUFCALLBACKS)); - memset(&D3dDriverData,0,sizeof(D3DNTHAL_GLOBALDRIVERDATA)); - memset(&D3dCallbacks,0,sizeof(D3DNTHAL_CALLBACKS)); - memset(&HalInfo,0,sizeof(DD_HALINFO)); - memset(CallBackFlags,0,sizeof(DWORD)*3); - - printf("Start testing of NtGdiDdQueryDirectDrawObject\n"); - - /* testing OsThunkDdQueryDirectDrawObject( NULL, .... */ - printf("testing DdQueryDirectDrawObject( NULL, ....)\n"); - - retValue = OsThunkDdQueryDirectDrawObject( NULL, pHalInfo, - pCallBackFlags, puD3dCallbacks, - puD3dDriverData, puD3dBufferCallbacks, - puD3dTextureFormats, puNumHeaps, - puvmList, puNumFourCC, - puFourCC); - testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - testing_noteq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); - - /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, NULL, .... */ - printf("testing DdQueryDirectDrawObject( hDD, NULL, ....)\n"); - - retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, - pCallBackFlags, puD3dCallbacks, - puD3dDriverData, puD3dBufferCallbacks, - puD3dTextureFormats, puNumHeaps, - puvmList, puNumFourCC, - puFourCC); - - testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); - testing_noteq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); - testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); - testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); - testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); - testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); - testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); - testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); - testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); - - /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, NULL, .... */ - printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, NULL, ....)\n"); - - pHalInfo = &HalInfo; - retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, - pCallBackFlags, puD3dCallbacks, - puD3dDriverData, puD3dBufferCallbacks, - puD3dTextureFormats, puNumHeaps, - puvmList, puNumFourCC, - puFourCC); - - testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); - testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); - testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); - testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); - testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); - testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); - testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); - testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); - testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); - - if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && - (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) - { - printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\n"); - fails++; - } - - if (dumping_on == TRUE) - { - dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...)"); - } - - /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */ - printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, NULL, ....)\n"); - - pHalInfo = &HalInfo; - pCallBackFlags = CallBackFlags; - - RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); - - retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, - pCallBackFlags, puD3dCallbacks, - puD3dDriverData, puD3dBufferCallbacks, - puD3dTextureFormats, puNumHeaps, - puvmList, puNumFourCC, - puFourCC); - - testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); - testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); - testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); - testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); - testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); - testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); - testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); - testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); - testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); - if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && - (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) - { - printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\n"); - fails++; - } - - if (dumping_on == TRUE) - { - dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); - dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); - } - - /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */ - printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ....)\n"); - - pHalInfo = &HalInfo; - pCallBackFlags = CallBackFlags; - puD3dCallbacks = &D3dCallbacks; - - RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); - RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3); - - retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, - pCallBackFlags, puD3dCallbacks, - puD3dDriverData, puD3dBufferCallbacks, - puD3dTextureFormats, puNumHeaps, - puvmList, puNumFourCC, - puFourCC); - - testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - - testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && - (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) - { - printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\n"); - fails++; - } - - if (dumping_on == TRUE) - { - dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); - dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); - /* FIXME dump puD3dCallbacks */ - } - - /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */ - printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ....)\n"); - - pHalInfo = &HalInfo; - pCallBackFlags = CallBackFlags; - puD3dCallbacks = &D3dCallbacks; - puD3dDriverData = &D3dDriverData; - - RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); - RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3); - RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS)); - - retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, - pCallBackFlags, puD3dCallbacks, - puD3dDriverData, puD3dBufferCallbacks, - puD3dTextureFormats, puNumHeaps, - puvmList, puNumFourCC, - puFourCC); - - testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); - testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); - testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); - testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); - - testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); - - testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); - testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); - testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); - testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); - if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && - (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) - { - printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\n"); - fails++; - } - - if (dumping_on == TRUE) - { - dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); - dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); - /* FIXME dump puD3dCallbacks */ - /* FIXME dump puD3dDriverData */ - } - - show_status(fails, "NtGdiDdQueryDirectDrawObject\0"); -} - -/* - * Test see if we can delete a DirectDrawObject from win32k - * - */ -void -test_NtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal) -{ - int fails=0; - BOOL retValue=FALSE; - printf("Start testing of NtGdiDdDeleteDirectDrawObject\n"); - - retValue = OsThunkDdDeleteDirectDrawObject(hDirectDrawLocal); - testing_eq(retValue,FALSE,fails,"NtGdiDdDeleteDirectDrawObject(hDirectDrawLocal);\0"); - - retValue = OsThunkDdDeleteDirectDrawObject(NULL); - testing_eq(retValue,TRUE,fails,"NtGdiDdDeleteDirectDrawObject(NULL);\0"); - - show_status(fails, "NtGdiDdDeleteDirectDrawObject\0"); -} + + + + diff --git a/rosapps/dxtest/win32kdxtest/win32kdxtest.rbuild b/rosapps/dxtest/win32kdxtest/win32kdxtest.rbuild index 5f01268bdf2..b923d196420 100644 --- a/rosapps/dxtest/win32kdxtest/win32kdxtest.rbuild +++ b/rosapps/dxtest/win32kdxtest/win32kdxtest.rbuild @@ -9,5 +9,8 @@ gdi32 d3d8thk main.c + NtGdiDdCreateDirectDrawObject.c + NtGdiDdDeleteDirectDrawObject.c + NtGdiDdQueryDirectDrawObject.c dump.c \ No newline at end of file