1 #include <stdio.h> 2 /* SDK/DDK/NDK Headers. */ 3 #include <windows.h> 4 #include <wingdi.h> 5 #include <winddi.h> 6 #include <d3dnthal.h> 7 #include <dll/directx/d3d8thk.h> 8 #include "test.h" 9 10 extern BOOL dumping_on; 11 12 /* my struct */ 13 struct 14 { 15 DWORD pos; 16 } *mytest; 17 18 /* 19 * Test see if we can setup DirectDrawObject 20 * 21 */ 22 23 /* 24 * ToDO 25 * 1. add more testcase it is only some, but we do not test for all case 26 * that happen only some 27 * 28 * 2.Fixed the false alaret for drivers only support 2d dx interface 29 * 30 * 3. fixed the dumping of d3d struct. 31 * 32 */ 33 34 void 35 test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal) 36 { 37 int fails=0; 38 BOOL retValue=FALSE; 39 40 DD_HALINFO *pHalInfo = NULL; 41 DWORD *pCallBackFlags = NULL; 42 LPD3DNTHAL_CALLBACKS puD3dCallbacks = NULL; 43 LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData = NULL; 44 PDD_D3DBUFCALLBACKS puD3dBufferCallbacks = NULL; 45 LPDDSURFACEDESC puD3dTextureFormats = NULL; 46 DWORD *puNumHeaps = NULL; 47 VIDEOMEMORY *puvmList = NULL; 48 DWORD *puNumFourCC = NULL; 49 DWORD *puFourCC = NULL; 50 51 DD_HALINFO HalInfo; 52 DWORD CallBackFlags[4]; 53 D3DNTHAL_CALLBACKS D3dCallbacks; 54 D3DNTHAL_GLOBALDRIVERDATA D3dDriverData; 55 DD_D3DBUFCALLBACKS D3dBufferCallbacks; 56 DDSURFACEDESC2 D3dTextureFormats[100]; 57 VIDEOMEMORY vmList; 58 59 /* clear data */ 60 memset(&vmList,0,sizeof(VIDEOMEMORY)); 61 memset(&D3dTextureFormats,0,sizeof(DDSURFACEDESC)); 62 memset(&D3dBufferCallbacks,0,sizeof(DD_D3DBUFCALLBACKS)); 63 memset(&D3dDriverData,0,sizeof(D3DNTHAL_GLOBALDRIVERDATA)); 64 memset(&D3dCallbacks,0,sizeof(D3DNTHAL_CALLBACKS)); 65 memset(&HalInfo,0,sizeof(DD_HALINFO)); 66 memset(CallBackFlags,0,sizeof(DWORD)*3); 67 68 printf("Start testing of NtGdiDdQueryDirectDrawObject\n"); 69 70 /* testing OsThunkDdQueryDirectDrawObject( NULL, .... */ 71 printf("testing DdQueryDirectDrawObject( NULL, ....)\n"); 72 73 retValue = OsThunkDdQueryDirectDrawObject( NULL, pHalInfo, 74 pCallBackFlags, puD3dCallbacks, 75 puD3dDriverData, puD3dBufferCallbacks, 76 puD3dTextureFormats, puNumHeaps, 77 puvmList, puNumFourCC, 78 puFourCC); 79 80 testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); 81 testing_noteq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); 82 testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); 83 testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); 84 testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); 85 testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); 86 testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); 87 testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); 88 testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(NULL, ...);\0"); 89 90 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, NULL, .... */ 91 printf("testing DdQueryDirectDrawObject( hDD, NULL, ....)\n"); 92 93 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, 94 pCallBackFlags, puD3dCallbacks, 95 puD3dDriverData, puD3dBufferCallbacks, 96 puD3dTextureFormats, puNumHeaps, 97 puvmList, puNumFourCC, 98 puFourCC); 99 100 testing_noteq(retValue,FALSE,fails,"10. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); 101 testing_noteq(pHalInfo,NULL,fails,"11. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); 102 testing_noteq(pCallBackFlags,NULL,fails,"12. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); 103 testing_noteq(puD3dCallbacks,NULL,fails,"13. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); 104 testing_noteq(puD3dDriverData,NULL,fails,"14. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); 105 testing_noteq(puD3dBufferCallbacks,NULL,fails,"15. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); 106 testing_noteq(puD3dTextureFormats,NULL,fails,"16. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); 107 testing_noteq(puNumFourCC,NULL,fails,"17. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); 108 testing_noteq(puFourCC,NULL,fails,"18. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0"); 109 110 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, NULL, .... */ 111 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, NULL, ....)\n"); 112 113 pHalInfo = &HalInfo; 114 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, 115 pCallBackFlags, puD3dCallbacks, 116 puD3dDriverData, puD3dBufferCallbacks, 117 puD3dTextureFormats, puNumHeaps, 118 puvmList, puNumFourCC, 119 puFourCC); 120 121 testing_noteq(retValue,FALSE,fails,"19. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); 122 testing_eq(pHalInfo,NULL,fails,"20. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); 123 testing_noteq(pCallBackFlags,NULL,fails,"21. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); 124 testing_noteq(puD3dCallbacks,NULL,fails,"22. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); 125 testing_noteq(puD3dDriverData,NULL,fails,"23. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); 126 testing_noteq(puD3dBufferCallbacks,NULL,fails,"24. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); 127 testing_noteq(puD3dTextureFormats,NULL,fails,"25. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); 128 testing_noteq(puNumFourCC,NULL,fails,"26. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); 129 testing_noteq(puFourCC,NULL,fails,"27. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0"); 130 131 /* 132 if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && 133 (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) 134 { 135 printf("28. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\n"); 136 fails++; 137 } 138 */ 139 140 if (dumping_on == TRUE) 141 { 142 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...)"); 143 } 144 145 146 147 148 149 150 151 152 153 154 155 156 157 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */ 158 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, NULL, ....)\n"); 159 160 pHalInfo = &HalInfo; 161 pCallBackFlags = CallBackFlags; 162 163 RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); 164 165 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, 166 pCallBackFlags, puD3dCallbacks, 167 puD3dDriverData, puD3dBufferCallbacks, 168 puD3dTextureFormats, puNumHeaps, 169 puvmList, puNumFourCC, 170 puFourCC); 171 172 testing_noteq(retValue,FALSE,fails,"29. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); 173 testing_eq(pHalInfo,NULL,fails,"30. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); 174 testing_eq(pCallBackFlags,NULL,fails,"31. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); 175 testing_noteq(puD3dCallbacks,NULL,fails,"32. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); 176 testing_noteq(puD3dDriverData,NULL,fails,"33. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); 177 testing_noteq(puD3dBufferCallbacks,NULL,fails,"34. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); 178 testing_noteq(puD3dTextureFormats,NULL,fails,"35. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); 179 testing_noteq(puNumFourCC,NULL,fails,"36. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); 180 testing_noteq(puFourCC,NULL,fails,"37. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0"); 181 /* 182 if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && 183 (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) 184 { 185 printf("38. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\n"); 186 fails++; 187 } 188 */ 189 190 if (dumping_on == TRUE) 191 { 192 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); 193 dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); 194 } 195 196 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, D3dCallbacks, .... */ 197 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ....)\n"); 198 199 pHalInfo = &HalInfo; 200 pCallBackFlags = CallBackFlags; 201 puD3dCallbacks = &D3dCallbacks; 202 203 RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); 204 RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3); 205 206 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, 207 pCallBackFlags, puD3dCallbacks, 208 puD3dDriverData, puD3dBufferCallbacks, 209 puD3dTextureFormats, puNumHeaps, 210 puvmList, puNumFourCC, 211 puFourCC); 212 213 testing_noteq(retValue,FALSE,fails,"39. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 214 testing_eq(pHalInfo,NULL,fails,"40. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 215 testing_eq(pCallBackFlags,NULL,fails,"41. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 216 217 218 testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"42. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 219 220 testing_noteq(puD3dDriverData,NULL,fails,"43. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 221 testing_noteq(puD3dBufferCallbacks,NULL,fails,"44. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 222 testing_noteq(puD3dTextureFormats,NULL,fails,"45. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 223 testing_noteq(puNumFourCC,NULL,fails,"46. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 224 testing_noteq(puFourCC,NULL,fails,"47. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 225 /* 226 if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && 227 (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) 228 { 229 printf("48. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\n"); 230 fails++; 231 } 232 */ 233 234 if (dumping_on == TRUE) 235 { 236 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...)"); 237 dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...)"); 238 dump_D3dCallbacks(puD3dCallbacks,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...)"); 239 } 240 241 /* testing OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, */ 242 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ....)\n"); 243 244 pHalInfo = &HalInfo; 245 pCallBackFlags = CallBackFlags; 246 puD3dCallbacks = &D3dCallbacks; 247 puD3dDriverData = &D3dDriverData; 248 249 RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); 250 RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3); 251 RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS)); 252 253 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, 254 pCallBackFlags, puD3dCallbacks, 255 puD3dDriverData, puD3dBufferCallbacks, 256 puD3dTextureFormats, puNumHeaps, 257 puvmList, puNumFourCC, 258 puFourCC); 259 260 testing_noteq(retValue,FALSE,fails,"49. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); 261 testing_eq(pHalInfo,NULL,fails,"50. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); 262 testing_eq(pCallBackFlags,NULL,fails,"51. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); 263 testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"52. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); 264 265 testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"53. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0"); 266 267 testing_noteq(puD3dBufferCallbacks,NULL,fails,"54. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); 268 testing_noteq(puD3dTextureFormats,NULL,fails,"55. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); 269 testing_noteq(puNumFourCC,NULL,fails,"56. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); 270 testing_noteq(puFourCC,NULL,fails,"57. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0"); 271 /* 272 if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && 273 (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) 274 { 275 printf("58. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\n"); 276 fails++; 277 } 278 */ 279 280 if (dumping_on == TRUE) 281 { 282 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...)"); 283 dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...)"); 284 dump_D3dCallbacks(puD3dCallbacks,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...)"); 285 dump_D3dDriverData(puD3dDriverData,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...)"); 286 } 287 288 /* testing OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, NULL, */ 289 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, NULL, ....)\n"); 290 291 pHalInfo = &HalInfo; 292 pCallBackFlags = CallBackFlags; 293 puD3dCallbacks = &D3dCallbacks; 294 puD3dDriverData = &D3dDriverData; 295 puD3dBufferCallbacks = &D3dBufferCallbacks; 296 297 RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); 298 RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3); 299 RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS)); 300 RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_CALLBACKS)); 301 302 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, 303 pCallBackFlags, puD3dCallbacks, 304 puD3dDriverData, puD3dBufferCallbacks, 305 puD3dTextureFormats, puNumHeaps, 306 puvmList, puNumFourCC, 307 puFourCC); 308 309 testing_noteq(retValue,FALSE,fails,"59. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); 310 testing_eq(pHalInfo,NULL,fails,"60. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); 311 testing_eq(pCallBackFlags,NULL,fails,"61. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); 312 testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"62. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); 313 314 testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"63. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dBufferCallbacks, NULL, ...);\0"); 315 316 testing_noteq(puD3dTextureFormats,NULL,fails,"64. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); 317 testing_noteq(puNumFourCC,NULL,fails,"65. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); 318 testing_noteq(puFourCC,NULL,fails,"66. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); 319 /* 320 if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && 321 (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) 322 { 323 printf("67. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\n"); 324 fails++; 325 } 326 */ 327 328 if (puD3dBufferCallbacks) 329 { 330 testing_noteq(puD3dBufferCallbacks->dwSize,sizeof(DD_D3DBUFCALLBACKS),fails,"68. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL...);\0"); 331 } 332 333 if (dumping_on == TRUE) 334 { 335 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...)"); 336 dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...)"); 337 dump_D3dCallbacks(puD3dCallbacks,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...)"); 338 dump_D3dDriverData(puD3dDriverData, "NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...)"); 339 dump_D3dBufferCallbacks(puD3dBufferCallbacks, "NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...)"); 340 } 341 342 /* testing OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, puD3dTextureFormats, NULL, */ 343 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, puD3dTextureFormats, NULL, ....)\n"); 344 345 pHalInfo = &HalInfo; 346 pCallBackFlags = CallBackFlags; 347 puD3dCallbacks = &D3dCallbacks; 348 puD3dDriverData = &D3dDriverData; 349 puD3dBufferCallbacks = &D3dBufferCallbacks; 350 351 if (puD3dDriverData) 352 { 353 puD3dTextureFormats = malloc (puD3dDriverData->dwNumTextureFormats * sizeof(DDSURFACEDESC2)); 354 if (!puD3dTextureFormats) 355 printf("Waring Out of memory\n"); 356 357 RtlZeroMemory(puD3dTextureFormats, puD3dDriverData->dwNumTextureFormats * sizeof(DDSURFACEDESC2)); 358 } 359 360 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, 361 pCallBackFlags, puD3dCallbacks, 362 puD3dDriverData, puD3dBufferCallbacks, 363 puD3dTextureFormats, puNumHeaps, 364 puvmList, puNumFourCC, 365 puFourCC); 366 367 368 369 370 371 testing_noteq(retValue,FALSE,fails,"69. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); 372 testing_eq(pHalInfo,NULL,fails,"70. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); 373 testing_eq(pCallBackFlags,NULL,fails,"71. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); 374 375 /* does not work nice in xp */ 376 // testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"72. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); 377 378 testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"73. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); 379 380 testing_noteq(puNumFourCC,NULL,fails,"74. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); 381 testing_noteq(puFourCC,NULL,fails,"75. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); 382 383 // /* 384 // if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && 385 // (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) 386 // { 387 // printf("8. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\n"); 388 // fails++; 389 // } 390 // */ 391 // 392 if (puD3dBufferCallbacks) 393 { 394 395 testing_noteq(puD3dBufferCallbacks->dwSize,sizeof(DD_D3DBUFCALLBACKS),fails,"76. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL...);\0"); 396 } 397 398 if (puD3dTextureFormats) 399 { 400 /* fixme test case for it */ 401 } 402 403 if (dumping_on == TRUE) 404 { 405 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...)"); 406 dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...)"); 407 dump_D3dCallbacks(puD3dCallbacks,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...)"); 408 dump_D3dDriverData(puD3dDriverData, "NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...)"); 409 dump_D3dBufferCallbacks(puD3dBufferCallbacks, "NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...)"); 410 dump_D3dTextureFormats(puD3dTextureFormats, puD3dDriverData->dwNumTextureFormats, "NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...)"); 411 } 412 413 414 415 416 417 if (puD3dTextureFormats) 418 free (puD3dTextureFormats); 419 show_status(fails, "NtGdiDdQueryDirectDrawObject\0"); 420 } 421