17{
29
32 DWORD CallBackFlags[4];
33
36
39
42
46
47
50
51 DWORD dwTextureCounter = 0;
53
54
62
63
65
66
69
70
73
74
76 pCallBackFlags, puD3dCallbacks,
77 puD3dDriverData, puD3dBufferCallbacks,
78 puD3dTextureFormats, puNumHeaps,
79 puvmList, puNumFourCC,
81
92
93 if (hDirectDraw ==
NULL)
94 {
95 skip(
"No DirectDrawObject\n");
97 return;
98 }
99
100
102 pCallBackFlags, puD3dCallbacks,
103 puD3dDriverData, puD3dBufferCallbacks,
104 puD3dTextureFormats, puNumHeaps,
105 puvmList, puNumFourCC,
107
118
119
122 pCallBackFlags, puD3dCallbacks,
123 puD3dDriverData, puD3dBufferCallbacks,
124 puD3dTextureFormats, puNumHeaps,
125 puvmList, puNumFourCC,
127
130
140
143 {
146 }
147
149 {
150
151
152
153
154
156
157
160
161
163
166
167
168
169
172
173
174
176
177
179
180
181
182
186
187
188 RTEST(
pHalInfo->vmiData.ddpfDisplay.dwRGBAlphaBitMask == 0 );
189
190
191
192
193
194
195
196
197
198
200
201
202
203
204
205
206
207
208
209
210
211
212
213
215
216
217
218
219
221
222
224
225
226
227
228
229
230
232 {
236 }
237
238
239
240
241
242
243
244
245
246
247
248
249
250 }
251
252
254
255
257 pCallBackFlags = CallBackFlags;
259
261 pCallBackFlags, puD3dCallbacks,
262 puD3dDriverData, puD3dBufferCallbacks,
263 puD3dTextureFormats, puNumHeaps,
264 puvmList, puNumFourCC,
268
271
280
281
283
284
285
286
287
288
289
290 RTEST(pCallBackFlags[2] == 0);
291
292
294 pCallBackFlags = CallBackFlags;
295 puD3dCallbacks = &D3dCallbacks;
296
299
301 pCallBackFlags, puD3dCallbacks,
302 puD3dDriverData, puD3dBufferCallbacks,
303 puD3dTextureFormats, puNumHeaps,
304 puvmList, puNumFourCC,
308
311
312
315
316
317
318
319
320
321
322
323
324
326
327
328
329
361
362
363
364
365
366
374
375
377
378
379 RTEST(pCallBackFlags[2] == 0);
380
381
383
384
385
387 pCallBackFlags = CallBackFlags;
388 puD3dCallbacks = &D3dCallbacks;
389 puD3dDriverData = &D3dDriverData;
390
394
396 pCallBackFlags, puD3dCallbacks,
397 puD3dDriverData, puD3dBufferCallbacks,
398 puD3dTextureFormats, puNumHeaps,
399 puvmList, puNumFourCC,
403
406
409
412
419
420
421
422
423 RTEST(pCallBackFlags[2] == 0);
424
425
428
429
430
431
432
433
434
435
436
439
440
442
443
445 pCallBackFlags = CallBackFlags;
446 puD3dCallbacks = &D3dCallbacks;
447 puD3dDriverData = &D3dDriverData;
448 puD3dBufferCallbacks = &D3dBufferCallbacks;
449
454
456 pCallBackFlags, puD3dCallbacks,
457 puD3dDriverData, puD3dBufferCallbacks,
458 puD3dTextureFormats, puNumHeaps,
459 puvmList, puNumFourCC,
463
465 {
469 }
470
473
476
479
482
485
491
492
493
494
495 RTEST(pCallBackFlags[2] == 0);
496
497
501
502
503
505 {
506
508 }
509 else
510 {
512 }
513
515 {
516
518 }
519 else
520 {
522 }
523
525 {
526
528 }
529 else
530 {
532 }
533
535 {
536
538 }
539 else
540 {
542 }
543
545 {
546
548 }
549 else
550 {
552 }
553
554
556
557
558
560 pCallBackFlags = CallBackFlags;
561 puD3dCallbacks = &D3dCallbacks;
562 puD3dDriverData = &D3dDriverData;
563 puD3dBufferCallbacks = &D3dBufferCallbacks;
564
565
566
567
568
569
571 {
574 }
575
581
583 pCallBackFlags, puD3dCallbacks,
584 puD3dDriverData, puD3dBufferCallbacks,
585 puD3dTextureFormats, puNumHeaps,
586 puvmList, puNumFourCC,
588
591
594
597
600
603
608
609
610
611
612 RTEST(pCallBackFlags[2] == 0);
613
614
619
620
622 {
623 myDesc = puD3dTextureFormats;
624 for (dwTextureCounter=0;dwTextureCounter<puD3dDriverData->
dwNumTextureFormats;dwTextureCounter++)
625 {
628
630 RTEST(myDesc->dwHeight == 0);
631 RTEST(myDesc->dwWidth == 0);
632 RTEST(myDesc->dwLinearSize == 0);
633 RTEST(myDesc->dwBackBufferCount == 0);
634 RTEST(myDesc->dwZBufferBitDepth == 0);
635 RTEST(myDesc->dwAlphaBitDepth == 0);
636 RTEST(myDesc->dwReserved == 0);
637 RTEST(myDesc->lpSurface == 0);
638 RTEST(myDesc->ddckCKDestOverlay.dwColorSpaceLowValue == 0);
639 RTEST(myDesc->ddckCKDestOverlay.dwColorSpaceHighValue == 0);
640 RTEST(myDesc->ddckCKDestBlt.dwColorSpaceLowValue == 0);
641 RTEST(myDesc->ddckCKDestBlt.dwColorSpaceHighValue == 0);
642 RTEST(myDesc->ddckCKSrcOverlay.dwColorSpaceLowValue == 0);
643 RTEST(myDesc->ddckCKSrcOverlay.dwColorSpaceHighValue == 0);
644 RTEST(myDesc->ddckCKSrcBlt.dwColorSpaceLowValue == 0);
645 RTEST(myDesc->ddckCKSrcBlt.dwColorSpaceHighValue == 0);
647 RTEST(myDesc->ddpfPixelFormat.dwFlags != 0);
649 {
650 RTEST(myDesc->ddpfPixelFormat.dwFourCC != 0);
651 }
653
655 }
656 }
657
658
659
661 pCallBackFlags = CallBackFlags;
662 puD3dCallbacks = &D3dCallbacks;
663 puD3dDriverData = &D3dDriverData;
664 puD3dBufferCallbacks = &D3dBufferCallbacks;
665 puNumHeaps = &NumHeaps;
666
668 {
670 }
676
678 pCallBackFlags, puD3dCallbacks,
679 puD3dDriverData, puD3dBufferCallbacks,
680 puD3dTextureFormats, puNumHeaps,
681 puvmList, puNumFourCC,
683
686
689
692
695
698
701 RTEST(NumHeaps == 0);
702
705
707
708
709
710
711 RTEST(pCallBackFlags[2] == 0);
712
713
718
719
720
721
723 pCallBackFlags = CallBackFlags;
724 puD3dCallbacks = &D3dCallbacks;
725 puD3dDriverData = &D3dDriverData;
726 puD3dBufferCallbacks = &D3dBufferCallbacks;
727 puNumHeaps = &NumHeaps;
728 puvmList = &vmList;
729
731 {
733 }
739
741 pCallBackFlags, puD3dCallbacks,
742 puD3dDriverData, puD3dBufferCallbacks,
743 puD3dTextureFormats, puNumHeaps,
744 puvmList, puNumFourCC,
746
749
752
755
758
761
764 RTEST(NumHeaps == 0);
765
767
770
771
772
773
774
775
776 RTEST(pCallBackFlags[2] == 0);
777
778
783
784
785
786
787
788
789
790
792 "NtGdiDdDeleteDirectDrawObject() failed\n");
793
795}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define DDHALINFO_GETDRIVERINFOSET
#define DDHALINFO_GETDRIVERINFO2
#define DDHAL_D3DBUFCB32_LOCKD3DBUF
#define DDHAL_D3DBUFCB32_CANCREATED3DBUF
#define DDHAL_D3DBUFCB32_DESTROYD3DBUF
#define DDHAL_D3DBUFCB32_UNLOCKD3DBUF
#define DDHAL_D3DBUFCB32_CREATED3DBUF
__kernel_entry W32KAPI BOOL APIENTRY NtGdiDdQueryDirectDrawObject(_In_ HANDLE hDirectDrawLocal, _Out_ PDD_HALINFO pHalInfo, _Out_writes_(3) DWORD *pCallBackFlags, _Out_opt_ LPD3DNTHAL_CALLBACKS puD3dCallbacks, _Out_opt_ LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, _Out_opt_ PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, _Out_opt_ LPDDSURFACEDESC puD3dTextureFormats, _Out_ DWORD *puNumHeaps, _Out_opt_ VIDEOMEMORY *puvmList, _Out_ DWORD *puNumFourCC, _Out_opt_ DWORD *puFourCC)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiDdDeleteDirectDrawObject(_In_ HANDLE hDirectDrawLocal)
__kernel_entry W32KAPI HANDLE APIENTRY NtGdiDdCreateDirectDrawObject(_In_ HDC hdc)
#define DDPF_PALETTEINDEXEDTO8
#define DDPF_PALETTEINDEXED4
#define DDPF_PALETTEINDEXED2
#define DDPF_PALETTEINDEXED1
#define DDPF_PALETTEINDEXED8
LPD3DNTHAL_SCENECAPTURECB SceneCapture
LPD3DNTHAL_TEXTURESWAPCB TextureSwap
LPD3DNTHAL_TEXTURECREATECB TextureCreate
LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf
LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy
LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll
DWORD dwNumTextureFormats
D3DNTHALDEVICEDESC_V1 hwCaps
PDD_CANCREATESURFACE CanCreateD3DBuffer
PDD_CREATESURFACE CreateD3DBuffer
PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer
PDD_SURFCB_LOCK LockD3DBuffer
PDD_SURFCB_UNLOCK UnlockD3DBuffer
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
BOOL WINAPI EnumDisplaySettingsA(LPCSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEA lpDevMode)
_Out_ DD_HALINFO * pHalInfo
BOOL WINAPI DeleteDC(_In_ HDC)
HDC WINAPI CreateDCW(_In_opt_ LPCWSTR pszDriver, _In_opt_ LPCWSTR pszDevice, _In_opt_ LPCWSTR psz, _In_opt_ const DEVMODEW *pdmInit)
#define ENUM_CURRENT_SETTINGS