2007-02-11 16:57:31 +00:00
2007-02-16 20:14:24 +00:00
/* All testcase are base how windows 2000 sp4 acting */
2007-02-11 16:57:31 +00:00
# include <stdio.h>
2007-02-16 16:27:46 +00:00
/* SDK/DDK/NDK Headers. */
2007-02-11 16:57:31 +00:00
# include <windows.h>
2007-02-16 16:27:46 +00:00
# include <wingdi.h>
# include <winddi.h>
# include <d3dnthal.h>
2007-02-22 19:21:10 +00:00
# include <dll/directx/d3d8thk.h>
2007-02-11 16:57:31 +00:00
# include "test.h"
2007-02-16 16:27:46 +00:00
2007-02-24 13:58:25 +00:00
BOOL dumping_on = FALSE ;
2007-02-22 19:21:10 +00:00
/* we using d3d8thk.dll it is doing the real syscall in windows 2000
* in ReactOS and Windows XP and higher d3d8thk . dll it linking to
* gdi32 . dll instead doing syscall , gdi32 . dll export DdEntry1 - 56
* and doing the syscall direcly . I did forget about it , This
* test program are now working on any Windows and ReactOS
* that got d3d8thk . dll
*/
2007-02-16 16:27:46 +00:00
2007-02-11 16:57:31 +00:00
int main ( int argc , char * * argv )
{
2007-02-16 16:27:46 +00:00
HANDLE hDirectDrawLocal ;
2007-02-24 13:58:25 +00:00
if ( argc = = 2 )
{
if ( stricmp ( argv [ 1 ] , " -dump " ) = = 0 )
{
dumping_on = TRUE ;
}
}
2007-02-16 16:27:46 +00:00
hDirectDrawLocal = test_NtGdiDdCreateDirectDrawObject ( ) ;
2007-02-11 16:57:31 +00:00
2007-02-16 16:27:46 +00:00
test_NtGdiDdQueryDirectDrawObject ( hDirectDrawLocal ) ;
test_NtGdiDdDeleteDirectDrawObject ( hDirectDrawLocal ) ;
2007-02-11 16:57:31 +00:00
return 0 ;
}
2007-02-16 16:27:46 +00:00
/*
* Test see if we getting a DirectDrawObject from win32k
*
*/
HANDLE
2007-02-11 16:57:31 +00:00
test_NtGdiDdCreateDirectDrawObject ( )
{
HANDLE retValue = 0 ;
int fails = 0 ;
HDC hdc = CreateDCW ( L " Display " , NULL , NULL , NULL ) ;
2007-02-16 16:27:46 +00:00
printf ( " Start testing of NtGdiDdCreateDirectDrawObject \n " ) ;
2007-02-11 16:57:31 +00:00
2007-02-22 19:21:10 +00:00
retValue = OsThunkDdCreateDirectDrawObject ( NULL ) ;
2007-02-16 16:27:46 +00:00
testing_noteq ( retValue , NULL , fails , " NtGdiDdCreateDirectDrawObject(NULL); \0 " ) ;
2007-02-11 16:57:31 +00:00
2007-02-22 19:21:10 +00:00
retValue = OsThunkDdCreateDirectDrawObject ( hdc ) ;
2007-02-16 16:27:46 +00:00
testing_eq ( retValue , NULL , fails , " NtGdiDdCreateDirectDrawObject(hdc); \0 " ) ;
show_status ( fails , " NtGdiDdCreateDirectDrawObject \0 " ) ;
return retValue ;
2007-02-11 16:57:31 +00:00
}
2007-02-16 16:27:46 +00:00
/*
* Test see if we can setup DirectDrawObject
*
*/
void
test_NtGdiDdQueryDirectDrawObject ( HANDLE hDirectDrawLocal )
{
int fails = 0 ;
BOOL retValue = FALSE ;
2007-02-16 16:43:27 +00:00
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 ;
2007-02-16 16:27:46 +00:00
2007-02-16 20:14:24 +00:00
DD_HALINFO HalInfo ;
2007-02-17 15:01:01 +00:00
DWORD CallBackFlags [ 4 ] ;
2007-02-16 20:14:24 +00:00
D3DNTHAL_CALLBACKS D3dCallbacks ;
D3DNTHAL_GLOBALDRIVERDATA D3dDriverData ;
DD_D3DBUFCALLBACKS D3dBufferCallbacks ;
2007-02-24 13:32:09 +00:00
DDSURFACEDESC2 D3dTextureFormats [ 100 ] ;
2007-02-22 19:21:10 +00:00
// DWORD NumHeaps = 0;
2007-02-16 20:14:24 +00:00
VIDEOMEMORY vmList ;
2007-02-22 19:21:10 +00:00
// DWORD NumFourCC = 0;
2007-02-17 15:01:01 +00:00
//DWORD FourCC = 0;
2007-02-16 20:14:24 +00:00
/* 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 ) ) ;
2007-02-17 15:01:01 +00:00
memset ( CallBackFlags , 0 , sizeof ( DWORD ) * 3 ) ;
2007-02-16 20:14:24 +00:00
2007-02-16 16:27:46 +00:00
printf ( " Start testing of NtGdiDdQueryDirectDrawObject \n " ) ;
2007-02-24 12:24:31 +00:00
/* testing OsThunkDdQueryDirectDrawObject( NULL, .... */
2007-02-24 13:32:09 +00:00
printf ( " testing DdQueryDirectDrawObject( NULL, ....) \n " ) ;
2007-02-24 12:24:31 +00:00
2007-02-22 19:21:10 +00:00
retValue = OsThunkDdQueryDirectDrawObject ( NULL , pHalInfo ,
2007-02-16 16:43:27 +00:00
pCallBackFlags , puD3dCallbacks ,
puD3dDriverData , puD3dBufferCallbacks ,
puD3dTextureFormats , puNumHeaps ,
puvmList , puNumFourCC ,
puFourCC ) ;
2007-02-16 20:14:24 +00:00
testing_noteq ( retValue , FALSE , fails , " 1. NtGdiDdQueryDirectDrawObject(NULL, ...); \0 " ) ;
2007-02-16 16:43:27 +00:00
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 " ) ;
2007-02-24 12:24:31 +00:00
/* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, NULL, .... */
2007-02-24 13:32:09 +00:00
printf ( " testing DdQueryDirectDrawObject( hDD, NULL, ....) \n " ) ;
2007-02-24 12:24:31 +00:00
2007-02-22 19:21:10 +00:00
retValue = OsThunkDdQueryDirectDrawObject ( hDirectDrawLocal , pHalInfo ,
2007-02-16 16:27:46 +00:00
pCallBackFlags , puD3dCallbacks ,
puD3dDriverData , puD3dBufferCallbacks ,
puD3dTextureFormats , puNumHeaps ,
puvmList , puNumFourCC ,
puFourCC ) ;
2007-02-16 20:14:24 +00:00
testing_noteq ( retValue , FALSE , fails , " 1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...); \0 " ) ;
2007-02-16 16:43:27 +00:00
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 " ) ;
2007-02-24 12:24:31 +00:00
/* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, NULL, .... */
2007-02-24 13:32:09 +00:00
printf ( " testing DdQueryDirectDrawObject( hDD, pHalInfo, NULL, ....) \n " ) ;
2007-02-16 16:43:27 +00:00
2007-02-16 20:14:24 +00:00
pHalInfo = & HalInfo ;
2007-02-22 19:21:10 +00:00
retValue = OsThunkDdQueryDirectDrawObject ( hDirectDrawLocal , pHalInfo ,
2007-02-16 20:14:24 +00:00
pCallBackFlags , puD3dCallbacks ,
puD3dDriverData , puD3dBufferCallbacks ,
puD3dTextureFormats , puNumHeaps ,
puvmList , puNumFourCC ,
puFourCC ) ;
2007-02-16 16:43:27 +00:00
2007-02-16 20:14:24 +00:00
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 " ) ;
2007-02-16 16:27:46 +00:00
2007-02-24 12:24:31 +00:00
if ( ( pHalInfo - > dwSize ! = sizeof ( DD_HALINFO ) ) & &
( pHalInfo - > dwSize ! = sizeof ( DD_HALINFO_V4 ) ) )
{
2007-02-24 13:58:25 +00:00
printf ( " 10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...); \n " ) ;
2007-02-24 13:32:09 +00:00
fails + + ;
2007-02-24 12:24:31 +00:00
}
2007-02-24 13:58:25 +00:00
if ( dumping_on = = TRUE )
{
dump_halinfo ( pHalInfo , " NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...) " ) ;
}
2007-02-17 15:01:01 +00:00
2007-02-24 12:24:31 +00:00
/* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */
2007-02-24 13:32:09 +00:00
printf ( " testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, NULL, ....) \n " ) ;
2007-02-17 15:01:01 +00:00
2007-02-24 12:24:31 +00:00
pHalInfo = & HalInfo ;
pCallBackFlags = CallBackFlags ;
2007-02-22 19:21:10 +00:00
2007-02-24 12:24:31 +00:00
RtlZeroMemory ( pHalInfo , sizeof ( DD_HALINFO ) ) ;
2007-02-22 19:21:10 +00:00
2007-02-24 12:24:31 +00:00
retValue = OsThunkDdQueryDirectDrawObject ( hDirectDrawLocal , pHalInfo ,
pCallBackFlags , puD3dCallbacks ,
puD3dDriverData , puD3dBufferCallbacks ,
puD3dTextureFormats , puNumHeaps ,
puvmList , puNumFourCC ,
puFourCC ) ;
2007-02-22 19:21:10 +00:00
2007-02-24 12:24:31 +00:00
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 " ) ;
2007-02-24 13:32:09 +00:00
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 + + ;
}
2007-02-24 13:58:25 +00:00
if ( dumping_on = = TRUE )
{
dump_halinfo ( pHalInfo , " NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...) " ) ;
dump_CallBackFlags ( pCallBackFlags , " NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...) " ) ;
}
2007-02-24 13:32:09 +00:00
/* 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 " ) ;
2007-02-24 12:24:31 +00:00
if ( ( pHalInfo - > dwSize ! = sizeof ( DD_HALINFO ) ) & &
( pHalInfo - > dwSize ! = sizeof ( DD_HALINFO_V4 ) ) )
{
2007-02-24 13:32:09 +00:00
printf ( " 10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...); \n " ) ;
fails + + ;
2007-02-24 12:24:31 +00:00
}
2007-02-24 13:58:25 +00:00
if ( dumping_on = = TRUE )
{
dump_halinfo ( pHalInfo , " NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...) " ) ;
dump_CallBackFlags ( pCallBackFlags , " NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...) " ) ;
/* FIXME dump puD3dCallbacks */
}
2007-02-24 13:32:09 +00:00
/* 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 + + ;
}
2007-02-24 13:58:25 +00:00
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 */
}
2007-02-17 15:01:01 +00:00
2007-02-16 16:27:46 +00:00
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 " ) ;
2007-02-22 19:21:10 +00:00
retValue = OsThunkDdDeleteDirectDrawObject ( hDirectDrawLocal ) ;
2007-02-16 16:27:46 +00:00
testing_eq ( retValue , FALSE , fails , " NtGdiDdDeleteDirectDrawObject(hDirectDrawLocal); \0 " ) ;
2007-02-22 19:21:10 +00:00
retValue = OsThunkDdDeleteDirectDrawObject ( NULL ) ;
2007-02-16 16:27:46 +00:00
testing_eq ( retValue , TRUE , fails , " NtGdiDdDeleteDirectDrawObject(NULL); \0 " ) ;
show_status ( fails , " NtGdiDdDeleteDirectDrawObject \0 " ) ;
}