2 /* SDK/DDK/NDK Headers. */
7 #include <dll/directx/d3d8thk.h>
10 extern BOOL dumping_on
;
13 * Test see if we can setup DirectDrawObject
17 test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal
)
22 DD_HALINFO
*pHalInfo
= NULL
;
23 DWORD
*pCallBackFlags
= NULL
;
24 LPD3DNTHAL_CALLBACKS puD3dCallbacks
= NULL
;
25 LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData
= NULL
;
26 PDD_D3DBUFCALLBACKS puD3dBufferCallbacks
= NULL
;
27 LPDDSURFACEDESC puD3dTextureFormats
= NULL
;
28 DWORD
*puNumHeaps
= NULL
;
29 VIDEOMEMORY
*puvmList
= NULL
;
30 DWORD
*puNumFourCC
= NULL
;
31 DWORD
*puFourCC
= NULL
;
34 DWORD CallBackFlags
[4];
35 D3DNTHAL_CALLBACKS D3dCallbacks
;
36 D3DNTHAL_GLOBALDRIVERDATA D3dDriverData
;
37 DD_D3DBUFCALLBACKS D3dBufferCallbacks
;
38 DDSURFACEDESC2 D3dTextureFormats
[100];
39 // DWORD NumHeaps = 0;
41 // DWORD NumFourCC = 0;
45 memset(&vmList
,0,sizeof(VIDEOMEMORY
));
46 memset(&D3dTextureFormats
,0,sizeof(DDSURFACEDESC
));
47 memset(&D3dBufferCallbacks
,0,sizeof(DD_D3DBUFCALLBACKS
));
48 memset(&D3dDriverData
,0,sizeof(D3DNTHAL_GLOBALDRIVERDATA
));
49 memset(&D3dCallbacks
,0,sizeof(D3DNTHAL_CALLBACKS
));
50 memset(&HalInfo
,0,sizeof(DD_HALINFO
));
51 memset(CallBackFlags
,0,sizeof(DWORD
)*3);
53 printf("Start testing of NtGdiDdQueryDirectDrawObject\n");
55 /* testing OsThunkDdQueryDirectDrawObject( NULL, .... */
56 printf("testing DdQueryDirectDrawObject( NULL, ....)\n");
58 retValue
= OsThunkDdQueryDirectDrawObject( NULL
, pHalInfo
,
59 pCallBackFlags
, puD3dCallbacks
,
60 puD3dDriverData
, puD3dBufferCallbacks
,
61 puD3dTextureFormats
, puNumHeaps
,
62 puvmList
, puNumFourCC
,
64 testing_noteq(retValue
,FALSE
,fails
,"1. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
65 testing_noteq(pHalInfo
,NULL
,fails
,"2. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
66 testing_noteq(pCallBackFlags
,NULL
,fails
,"3. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
67 testing_noteq(puD3dCallbacks
,NULL
,fails
,"4. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
68 testing_noteq(puD3dDriverData
,NULL
,fails
,"5. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
69 testing_noteq(puD3dBufferCallbacks
,NULL
,fails
,"6. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
70 testing_noteq(puD3dTextureFormats
,NULL
,fails
,"7. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
71 testing_noteq(puNumFourCC
,NULL
,fails
,"8. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
72 testing_noteq(puFourCC
,NULL
,fails
,"9. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
74 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, NULL, .... */
75 printf("testing DdQueryDirectDrawObject( hDD, NULL, ....)\n");
77 retValue
= OsThunkDdQueryDirectDrawObject( hDirectDrawLocal
, pHalInfo
,
78 pCallBackFlags
, puD3dCallbacks
,
79 puD3dDriverData
, puD3dBufferCallbacks
,
80 puD3dTextureFormats
, puNumHeaps
,
81 puvmList
, puNumFourCC
,
84 testing_noteq(retValue
,FALSE
,fails
,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
85 testing_noteq(pHalInfo
,NULL
,fails
,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
86 testing_noteq(pCallBackFlags
,NULL
,fails
,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
87 testing_noteq(puD3dCallbacks
,NULL
,fails
,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
88 testing_noteq(puD3dDriverData
,NULL
,fails
,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
89 testing_noteq(puD3dBufferCallbacks
,NULL
,fails
,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
90 testing_noteq(puD3dTextureFormats
,NULL
,fails
,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
91 testing_noteq(puNumFourCC
,NULL
,fails
,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
92 testing_noteq(puFourCC
,NULL
,fails
,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
94 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, NULL, .... */
95 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, NULL, ....)\n");
98 retValue
= OsThunkDdQueryDirectDrawObject( hDirectDrawLocal
, pHalInfo
,
99 pCallBackFlags
, puD3dCallbacks
,
100 puD3dDriverData
, puD3dBufferCallbacks
,
101 puD3dTextureFormats
, puNumHeaps
,
102 puvmList
, puNumFourCC
,
105 testing_noteq(retValue
,FALSE
,fails
,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
106 testing_eq(pHalInfo
,NULL
,fails
,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
107 testing_noteq(pCallBackFlags
,NULL
,fails
,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
108 testing_noteq(puD3dCallbacks
,NULL
,fails
,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
109 testing_noteq(puD3dDriverData
,NULL
,fails
,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
110 testing_noteq(puD3dBufferCallbacks
,NULL
,fails
,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
111 testing_noteq(puD3dTextureFormats
,NULL
,fails
,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
112 testing_noteq(puNumFourCC
,NULL
,fails
,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
113 testing_noteq(puFourCC
,NULL
,fails
,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
115 if ((pHalInfo
->dwSize
!= sizeof(DD_HALINFO
)) &&
116 (pHalInfo
->dwSize
!= sizeof(DD_HALINFO_V4
)))
118 printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\n");
122 if (dumping_on
== TRUE
)
124 dump_halinfo(pHalInfo
,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...)");
127 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */
128 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, NULL, ....)\n");
131 pCallBackFlags
= CallBackFlags
;
133 RtlZeroMemory(pHalInfo
,sizeof(DD_HALINFO
));
135 retValue
= OsThunkDdQueryDirectDrawObject( hDirectDrawLocal
, pHalInfo
,
136 pCallBackFlags
, puD3dCallbacks
,
137 puD3dDriverData
, puD3dBufferCallbacks
,
138 puD3dTextureFormats
, puNumHeaps
,
139 puvmList
, puNumFourCC
,
142 testing_noteq(retValue
,FALSE
,fails
,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
143 testing_eq(pHalInfo
,NULL
,fails
,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
144 testing_eq(pCallBackFlags
,NULL
,fails
,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
145 testing_noteq(puD3dCallbacks
,NULL
,fails
,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
146 testing_noteq(puD3dDriverData
,NULL
,fails
,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
147 testing_noteq(puD3dBufferCallbacks
,NULL
,fails
,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
148 testing_noteq(puD3dTextureFormats
,NULL
,fails
,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
149 testing_noteq(puNumFourCC
,NULL
,fails
,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
150 testing_noteq(puFourCC
,NULL
,fails
,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
151 if ((pHalInfo
->dwSize
!= sizeof(DD_HALINFO
)) &&
152 (pHalInfo
->dwSize
!= sizeof(DD_HALINFO_V4
)))
154 printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\n");
158 if (dumping_on
== TRUE
)
160 dump_halinfo(pHalInfo
,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
161 dump_CallBackFlags(pCallBackFlags
,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
164 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */
165 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ....)\n");
168 pCallBackFlags
= CallBackFlags
;
169 puD3dCallbacks
= &D3dCallbacks
;
171 RtlZeroMemory(pHalInfo
,sizeof(DD_HALINFO
));
172 RtlZeroMemory(pCallBackFlags
,sizeof(DWORD
)*3);
174 retValue
= OsThunkDdQueryDirectDrawObject( hDirectDrawLocal
, pHalInfo
,
175 pCallBackFlags
, puD3dCallbacks
,
176 puD3dDriverData
, puD3dBufferCallbacks
,
177 puD3dTextureFormats
, puNumHeaps
,
178 puvmList
, puNumFourCC
,
181 testing_noteq(retValue
,FALSE
,fails
,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
182 testing_eq(pHalInfo
,NULL
,fails
,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
183 testing_eq(pCallBackFlags
,NULL
,fails
,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
184 testing_noteq(puD3dCallbacks
->dwSize
,sizeof(D3DNTHAL_CALLBACKS
),fails
,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
186 testing_noteq(puD3dDriverData
,NULL
,fails
,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
187 testing_noteq(puD3dBufferCallbacks
,NULL
,fails
,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
188 testing_noteq(puD3dTextureFormats
,NULL
,fails
,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
189 testing_noteq(puNumFourCC
,NULL
,fails
,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
190 testing_noteq(puFourCC
,NULL
,fails
,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
191 if ((pHalInfo
->dwSize
!= sizeof(DD_HALINFO
)) &&
192 (pHalInfo
->dwSize
!= sizeof(DD_HALINFO_V4
)))
194 printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\n");
198 if (dumping_on
== TRUE
)
200 dump_halinfo(pHalInfo
,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
201 dump_CallBackFlags(pCallBackFlags
,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
202 /* FIXME dump puD3dCallbacks */
205 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */
206 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ....)\n");
209 pCallBackFlags
= CallBackFlags
;
210 puD3dCallbacks
= &D3dCallbacks
;
211 puD3dDriverData
= &D3dDriverData
;
213 RtlZeroMemory(pHalInfo
,sizeof(DD_HALINFO
));
214 RtlZeroMemory(pCallBackFlags
,sizeof(DWORD
)*3);
215 RtlZeroMemory(puD3dCallbacks
,sizeof(D3DNTHAL_CALLBACKS
));
217 retValue
= OsThunkDdQueryDirectDrawObject( hDirectDrawLocal
, pHalInfo
,
218 pCallBackFlags
, puD3dCallbacks
,
219 puD3dDriverData
, puD3dBufferCallbacks
,
220 puD3dTextureFormats
, puNumHeaps
,
221 puvmList
, puNumFourCC
,
224 testing_noteq(retValue
,FALSE
,fails
,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
225 testing_eq(pHalInfo
,NULL
,fails
,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
226 testing_eq(pCallBackFlags
,NULL
,fails
,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
227 testing_noteq(puD3dCallbacks
->dwSize
,sizeof(D3DNTHAL_CALLBACKS
),fails
,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
229 testing_noteq(puD3dDriverData
->dwSize
,sizeof(D3DNTHAL_GLOBALDRIVERDATA
),fails
,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
231 testing_noteq(puD3dBufferCallbacks
,NULL
,fails
,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
232 testing_noteq(puD3dTextureFormats
,NULL
,fails
,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
233 testing_noteq(puNumFourCC
,NULL
,fails
,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
234 testing_noteq(puFourCC
,NULL
,fails
,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
235 if ((pHalInfo
->dwSize
!= sizeof(DD_HALINFO
)) &&
236 (pHalInfo
->dwSize
!= sizeof(DD_HALINFO_V4
)))
238 printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\n");
242 if (dumping_on
== TRUE
)
244 dump_halinfo(pHalInfo
,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
245 dump_CallBackFlags(pCallBackFlags
,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
246 /* FIXME dump puD3dCallbacks */
247 /* FIXME dump puD3dDriverData */
250 show_status(fails
, "NtGdiDdQueryDirectDrawObject\0");