[CSRSS]
[reactos.git] / rostests / dxtest / win32kdxtest / NtGdiDdQueryDirectDrawObject.c
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 }