ReactOS  0.4.14-dev-317-g96040ec
drvdbg.c
Go to the documentation of this file.
1 /*
2  * PROJECT: Win32 subsystem
3  * LICENSE: GNU GPL, see COPYING in the top level directory
4  * FILE: win32ss/gdi/eng/drvdbg.c
5  * PURPOSE: Debug hooks for display driver callbacks
6  * PROGRAMMERS: Timo Kreuzer
7  */
8 
9 #include <win32k.h>
10 DBG_DEFAULT_CHANNEL(EngDev);
11 
13 NTAPI
14 DbgLookupDHPDEV(DHPDEV dhpdev);
15 
16 VOID
18 {
19  ASSERT(FALSE);
20 }
21 
22 DHPDEV
25  _In_ DEVMODEW *pdm,
27  ULONG cPat,
28  _In_opt_ HSURF *phsurfPatterns,
29  ULONG cjCaps,
30  _Out_ ULONG *pdevcaps,
32  _Out_ DEVINFO *pdi,
33  HDEV hdev,
36 {
37  PPDEVOBJ ppdev = (PPDEVOBJ)hdev;
38 
39  ASSERT(pdm);
40  ASSERT(hdev);
41 
42  return ppdev->pldev->pfn.EnablePDEV(pdm,
44  cPat,
45  phsurfPatterns,
46  cjCaps,
47  pdevcaps,
48  cjDevInfo,
49  pdi,
50  hdev,
52  hDriver);
53 }
54 
55 VOID
58  DHPDEV dhpdev,
59  HDEV hdev)
60 {
61  PPDEVOBJ ppdev = (PPDEVOBJ)hdev;
62 
63  ASSERT(ppdev);
64 
65  ppdev->pldev->pfn.CompletePDEV(dhpdev, hdev);
66 }
67 
68 VOID
71  DHPDEV dhpdev)
72 {
73  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
74 
75  ASSERT(ppdev);
76 
77  ppdev->pldev->pfn.DisablePDEV(dhpdev);
78 }
79 
80 HSURF
83  DHPDEV dhpdev)
84 {
85  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
86 
87  ASSERT(ppdev);
88 
89  return ppdev->pldev->pfn.EnableSurface(dhpdev);
90 }
91 
92 VOID
95  DHPDEV dhpdev)
96 {
97  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
98 
99  ASSERT(ppdev);
100 
101  ppdev->pldev->pfn.DisableSurface(dhpdev);
102 }
103 
104 BOOL
105 APIENTRY
107  _In_ DHPDEV dhpdev,
108  _In_ BOOL bEnable)
109 {
110  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
111 
112  ASSERT(ppdev);
113 
114  return ppdev->pldev->pfn.AssertMode(dhpdev, bEnable);
115 }
116 
117 BOOL
118 APIENTRY
120  SURFOBJ* pso,
121  LONG x1,
122  LONG x2,
123  FLONG fl)
124 {
125  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
126 
127  ASSERT(FALSE);
128  return 0;
129 }
130 
131 ULONG
132 APIENTRY
134  DHPDEV dhpdev,
135  PVOID Reserved)
136 {
137  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
138 
139  ASSERT(ppdev);
140 
141  return ppdev->pldev->pfn.ResetDevice(dhpdev, Reserved);
142 }
143 
144 VOID
145 APIENTRY
147 {
148  ASSERT(FALSE);
149 }
150 
151 HBITMAP
152 APIENTRY
154  DHPDEV dhpdev,
155  SIZEL sizl,
156  ULONG iFormat)
157 {
158  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
159 
160  ASSERT(ppdev);
161 
162  return ppdev->pldev->pfn.CreateDeviceBitmap(dhpdev, sizl, iFormat);
163 }
164 
165 VOID
166 APIENTRY
168  DHSURF dhsurf)
169 {
170  ASSERT(FALSE);
171 }
172 
173 BOOL
174 APIENTRY
176  _In_ BRUSHOBJ *pbo,
180  _In_ XLATEOBJ *pxlo,
181  _In_ ULONG iHatch)
182 {
183  PPDEVOBJ ppdev = (PPDEVOBJ)psoTarget->hdev;
184  ASSERT(FALSE);
185  return 0;
186 }
187 
188 ULONG
189 APIENTRY
191  _In_ DHPDEV dhpdev,
192  _In_ ULONG iMode,
193  _In_ ULONG rgb,
194  _Inout_ ULONG *pul)
195 {
196  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
197 
198  ASSERT(ppdev);
199 
200  return ppdev->pldev->pfn.DitherColor(dhpdev, iMode, rgb, pul);
201 }
202 
203 BOOL
204 APIENTRY
207  _In_ PATHOBJ *ppo,
208  _In_ CLIPOBJ *pco,
210  _In_ BRUSHOBJ *pbo,
213  _In_ MIX mix)
214 {
215  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
216  ASSERT(FALSE);
217  return 0;
218 }
219 
220 BOOL
221 APIENTRY
224  _In_ PATHOBJ *ppo,
225  _In_ CLIPOBJ *pco,
226  _In_ BRUSHOBJ *pbo,
228  _In_ MIX mix,
230 {
231  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
232  ASSERT(FALSE);
233  return 0;
234 }
235 
236 BOOL
237 APIENTRY
241  _In_ CLIPOBJ *pco,
247  _In_ MIX mixFill,
249 {
250  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
251  ASSERT(FALSE);
252  return 0;
253 }
254 
255 BOOL
256 APIENTRY
258  IN SURFOBJ *pso,
259  IN CLIPOBJ *pco,
260  IN BRUSHOBJ *pbo,
262  IN MIX mix)
263 {
264  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
265  return 0;
266 }
267 
268 BOOL
269 APIENTRY
271  _Inout_ SURFOBJ *psoTrg,
276  _In_ RECTL *prclTrg,
281  _In_ ROP4 rop4)
282 {
283  PSURFACE psurfTrg = CONTAINING_RECORD(psoTrg, SURFACE, SurfObj);
284  PSURFACE psurfSrc = CONTAINING_RECORD(psoSrc, SURFACE, SurfObj);
285  PPDEVOBJ ppdev;
286 
287  /* Get the right BitBlt function */
288  if (psurfTrg->flags & HOOK_BITBLT)
289  {
290  ppdev = (PPDEVOBJ)psoTrg->hdev;
291  }
292  else
293  {
295  ASSERT(psurfSrc->flags & HOOK_BITBLT);
296  ppdev = (PPDEVOBJ)psoSrc->hdev;
297  }
298 
299  /* Sanity checks */
301  ASSERT(psoTrg);
302  ASSERT(psoTrg->iBitmapFormat >= BMF_1BPP);
303  ASSERT(psoTrg->iBitmapFormat <= BMF_32BPP);
304  ASSERT(prclTrg);
305  ASSERT(prclTrg->left >= 0);
306  ASSERT(prclTrg->top >= 0);
307  ASSERT(prclTrg->right <= psoTrg->sizlBitmap.cx);
308  ASSERT(prclTrg->bottom <= psoTrg->sizlBitmap.cy);
310  ASSERT(pco);
311  ASSERT(pco->iDComplexity != DC_RECT);
312 
313  if (ROP4_USES_SOURCE(rop4))
314  {
315  ASSERT(psoSrc);
316  ASSERT(psoSrc->iBitmapFormat >= BMF_1BPP);
317  ASSERT(psoSrc->iBitmapFormat <= BMF_8RLE);
318  ASSERT(pptlSrc);
319  ASSERT(pptlSrc->x >= 0);
320  ASSERT(pptlSrc->y >= 0);
321  ASSERT(pptlSrc->x <= psoTrg->sizlBitmap.cx);
322  ASSERT(pptlSrc->y <= psoTrg->sizlBitmap.cy);
323  }
324 
325  if (ROP4_USES_MASK(rop4))
326  {
327  ASSERT(psoMask);
328  ASSERT(psoMask->iBitmapFormat == BMF_1BPP);
329  ASSERT(pptlMask);
330  ASSERT(pptlMask->x >= 0);
331  ASSERT(pptlMask->y >= 0);
332  ASSERT(pptlMask->x <= psoMask->sizlBitmap.cx);
333  ASSERT(pptlMask->y <= psoMask->sizlBitmap.cy);
334 
335  }
336 
337  if (ROP4_USES_PATTERN(rop4))
338  {
339  ASSERT(pbo);
340  ASSERT(pptlBrush);
341  }
342 
343 
344  return ppdev->pldev->pfn.BitBlt(psoTrg,
345  psoSrc,
346  psoMask,
347  pco,
348  pxlo,
349  prclTrg,
350  pptlSrc,
351  pptlMask,
352  pbo,
353  pptlBrush,
354  rop4);
355 }
356 
357 BOOL
358 APIENTRY
360  SURFOBJ *psoTrg,
361  SURFOBJ *psoSrc,
362  CLIPOBJ *pco,
363  XLATEOBJ *pxlo,
364  RECTL *prclTrg,
365  POINTL *pptlSrc)
366 {
367  PSURFACE psurfTrg = CONTAINING_RECORD(psoTrg, SURFACE, SurfObj);
368  PSURFACE psurfSrc = CONTAINING_RECORD(psoSrc, SURFACE, SurfObj);
369  PPDEVOBJ ppdev;
370 
371  /* Get the right BitBlt function */
372  if (psurfTrg->flags & HOOK_COPYBITS)
373  {
374  ppdev = (PPDEVOBJ)psoTrg->hdev;
375  }
376  else
377  {
378  ASSERT(psurfSrc->flags & HOOK_COPYBITS);
379  ppdev = (PPDEVOBJ)psoSrc->hdev;
380  }
381 
382  return ppdev->pldev->pfn.CopyBits(psoTrg,
383  psoSrc,
384  pco,
385  pxlo,
386  prclTrg,
387  pptlSrc);
388 
389 }
390 
391 BOOL
392 APIENTRY
394  _Inout_ SURFOBJ *psoTrg,
397  _In_ CLIPOBJ *pco,
402  _In_ RECTL *prclSrc,
404  _In_ ULONG iMode)
405 {
406  PSURFACE psurfTrg = CONTAINING_RECORD(psoTrg, SURFACE, SurfObj);
407  PSURFACE psurfSrc = CONTAINING_RECORD(psoSrc, SURFACE, SurfObj);
408 
409  return 0;
410 }
411 
412 BOOL
413 APIENTRY
415  DHPDEV dhpdev,
416  PALOBJ *ppalo,
417  FLONG fl,
418  ULONG iStart,
419  ULONG cColors)
420 {
421  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
422 
423  ASSERT(ppdev);
424 
425  return ppdev->pldev->pfn.SetPalette(dhpdev, ppalo, fl, iStart, cColors);
426 }
427 
428 BOOL
429 APIENTRY
431  SURFOBJ *pso,
432  STROBJ *pstro,
433  FONTOBJ *pfo,
434  CLIPOBJ *pco,
435  RECTL *prclExtra ,
436  RECTL *prclOpaque,
437  BRUSHOBJ *pboFore,
439  POINTL *pptlOrg,
440  MIX mix)
441 {
442  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
443  return 0;
444 }
445 
446 ULONG
447 APIENTRY
449  _In_ SURFOBJ *pso,
450  _In_ ULONG iEsc,
451  _In_ ULONG cjIn,
452  _In_ PVOID pvIn,
453  _In_ ULONG cjOut,
454  _Out_ PVOID pvOut)
455 {
456  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
457  return 0;
458 }
459 
460 ULONG
461 APIENTRY
463  _In_ SURFOBJ *pso,
464  _In_ ULONG iEsc,
465  _In_ CLIPOBJ *pco,
466  _In_ RECTL *prcl,
467  _In_ ULONG cjIn,
468  _In_ PVOID pvIn)
469 {
470  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
471  return 0;
472 }
473 
475 APIENTRY
477  DHPDEV dhpdev,
479  ULONG iFace,
480  ULONG_PTR *pid)
481 {
482  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
483 
484  ASSERT(ppdev);
485 
486  return ppdev->pldev->pfn.QueryFont(dhpdev, iFile, iFace, pid);
487 }
488 
489 PVOID
490 APIENTRY
492  DHPDEV dhpdev,
494  ULONG iFace,
495  ULONG iMode,
496  ULONG_PTR *pid)
497 {
498  return 0;
499 }
500 
501 LONG
502 APIENTRY
504  DHPDEV dhpdev,
505  FONTOBJ *pfo,
506  ULONG iMode,
507  HGLYPH hg,
508  GLYPHDATA *pgd,
509  _Out_ PVOID pv,
510  ULONG cjSize)
511 {
512  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
513 
514  ASSERT(ppdev);
515 
516  return ppdev->pldev->pfn.QueryFontData(dhpdev, pfo, iMode, hg, pgd, pv, cjSize);
517 }
518 
519 ULONG
520 APIENTRY
522  _In_ SURFOBJ *pso,
525  _In_ XLATEOBJ *pxlo,
526  _In_ LONG xHot,
527  _In_ LONG yHot,
528  _In_ LONG x,
529  _In_ LONG y,
530  _In_ RECTL *prcl,
531  _In_ FLONG fl)
532 {
533  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
534  return 0;
535 }
536 
537 VOID
538 APIENTRY
540  _In_ SURFOBJ *pso,
541  _In_ LONG x,
542  _In_ LONG y,
543  _In_ RECTL *prcl)
544 {
545  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
546 }
547 
548 BOOL
549 APIENTRY
551  SURFOBJ *pso,
552  CLIPOBJ *pco,
553  BRUSHOBJ *pbo,
554  LONG x1,
555  LONG y1,
556  LONG x2,
557  LONG y2,
558  RECTL *prclBounds,
559  MIX mix)
560 {
561  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
562  return 0;
563 }
564 
565 BOOL
566 APIENTRY
568  _In_ SURFOBJ *pso)
569 {
570  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
571  return 0;
572 }
573 
574 BOOL
575 APIENTRY
577  _In_ SURFOBJ *pso)
578 {
579  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
580  return 0;
581 }
582 
583 BOOL
584 APIENTRY
586  _In_ SURFOBJ *pso,
587  _In_ FLONG fl)
588 {
589  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
590  return 0;
591 }
592 
593 BOOL
594 APIENTRY
596  _In_ SURFOBJ *pso,
599 {
600  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
601  return 0;
602 }
603 
604 ULONG
605 APIENTRY
607  _In_ DHPDEV dhpdev,
608  _In_ FONTOBJ *pfo)
609 {
610  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
611 
612  ASSERT(ppdev);
613 
614  return ppdev->pldev->pfn.GetGlyphMode(dhpdev, pfo);
615 }
616 
617 VOID
618 APIENTRY
620  DHPDEV dhpdev,
621  RECTL *prcl)
622 {
623  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
624 
625  ASSERT(ppdev);
626 
627  ppdev->pldev->pfn.Synchronize(dhpdev, prcl);
628 }
629 
630 ULONG_PTR
631 APIENTRY
633  SURFOBJ *pso,
634  ULONG iMode,
636  RECTL *prcl)
637 {
638  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
639  return 0;
640 }
641 
642 ULONG
643 APIENTRY
646  ULONG cjSize,
647  _Out_opt_ DEVMODEW *pdm)
648 {
649  return 0;
650 }
651 
652 VOID
653 APIENTRY
655  PVOID pv,
656  ULONG_PTR id)
657 {
658 }
659 
660 VOID
661 APIENTRY
663  FONTOBJ *pfo)
664 {
665 }
666 
667 LONG
668 APIENTRY
670  ULONG culCaps,
671  ULONG *pulCaps)
672 {
673  return 0;
674 }
675 
676 ULONG_PTR
677 APIENTRY
679  ULONG cFiles,
680  ULONG_PTR *piFile,
681  PVOID *ppvView,
682  ULONG *pcjView,
683  DESIGNVECTOR *pdv,
684  ULONG ulLangID,
686 {
687  return 0;
688 }
689 
690 BOOL
691 APIENTRY
694 {
695  return 0;
696 }
697 
698 ULONG
699 APIENTRY
701  _In_ SURFOBJ *pso,
703  _In_ ULONG iMode,
704  _In_ ULONG cjIn,
705  _In_ PVOID pvIn,
706  _In_ ULONG cjOut,
707  _Out_ PVOID pvOut)
708 {
709  return 0;
710 }
711 
712 LONG
713 APIENTRY
716  ULONG ulFont,
717  ULONG ulTag,
719  ULONG cjBuf,
720  BYTE *pjBuf,
721  PBYTE *ppjTable,
722  ULONG *pcjTable)
723 {
724  return 0;
725 }
726 
727 LONG
728 APIENTRY
730  DHPDEV dhpdev,
731  FONTOBJ *pfo,
732  HGLYPH hglyph,
734  GLYPHDATA *pgldt,
735  ULONG cjBuf,
736  TTPOLYGONHEADER *ppoly)
737 {
738  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
739  return 0;
740 }
741 
742 PVOID
743 APIENTRY
746  ULONG *pcj)
747 {
748  return 0;
749 }
750 
751 LONG
752 APIENTRY
755  ULONG ulMode,
756  ULONG cjBuf,
757  ULONG *pulBuf)
758 {
759  return 0;
760 }
761 
762 VOID
763 APIENTRY
765  LONG x,
766  LONG y,
767  FLONG fl)
768 {
769  ERR("Obsolete driver function %s called!\n", __FUNCTION__);
770  ASSERT(FALSE);
771 }
772 
773 BOOL
774 APIENTRY
776  DHPDEV dhpdev,
777  FONTOBJ *pfo,
778  ULONG iMode,
779  _In_ HGLYPH *phg,
780  _Out_ PVOID pvWidths,
781  ULONG cGlyphs)
782 {
783  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
784  return 0;
785 }
786 
787 BOOL
788 APIENTRY
790  SURFOBJ *pso,
792  HWND hwnd)
793 {
794  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
795  return 0;
796 }
797 
798 LONG
799 APIENTRY
801  DHPDEV dhpdev,
803  ULONG cjpfd,
805 {
806  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
807 
808  ASSERT(ppdev);
809 
810  return ppdev->pldev->pfn.DescribePixelFormat(dhpdev, iPixelFormat, cjpfd, ppfd);
811 }
812 
813 BOOL
814 APIENTRY
816  SURFOBJ *pso,
817  WNDOBJ *pwo)
818 {
819  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
820  return 0;
821 }
822 
823 BOOL
824 APIENTRY
826  _In_ SURFOBJ *pso,
827  _In_ POINTL *pptl)
828 {
829  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
830  return 0;
831 }
832 
833 BOOL
834 APIENTRY
836  _In_ SURFOBJ *pso,
837  _In_ POINTL *pptl)
838 {
839  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
840  return 0;
841 }
842 
843 BOOL
844 APIENTRY
846  DHPDEV dhpdev,
851  DWORD *pdwFourCC)
852 {
853  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
854 
855  ASSERT(ppdev);
856 
857  return ppdev->pldev->pfn.GetDirectDrawInfo(dhpdev,
858  pHalInfo,
859  pdwNumHeaps,
860  pvmList,
862  pdwFourCC);
863 }
864 
865 BOOL
866 APIENTRY
868  DHPDEV dhpdev,
872 {
873  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
874 
875  ASSERT(ppdev);
876 
877  return ppdev->pldev->pfn.EnableDirectDraw(dhpdev,
878  pCallBacks,
881 }
882 
883 VOID
884 APIENTRY
886  DHPDEV dhpdev)
887 {
888  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
889 
890  ASSERT(ppdev);
891 
892  ppdev->pldev->pfn.DisableDirectDraw(dhpdev);
893 }
894 
895 BOOL
896 APIENTRY
898 {
899  ERR("Obsolete driver function %s called!\n", __FUNCTION__);
900  ASSERT(FALSE);
901  return 0;
902 }
903 
904 HANDLE
905 APIENTRY
907  _In_ DHPDEV dhpdev,
909  _In_opt_ PVOID pvSourceProfile,
911  _In_ PVOID pvDestProfile,
913  _In_opt_ PVOID pvTargetProfile,
916 {
917  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
918 
919  ASSERT(ppdev);
920 
921  return ppdev->pldev->pfn.IcmCreateColorTransform(dhpdev,
923  pvSourceProfile,
925  pvDestProfile,
927  pvTargetProfile,
929  dwReserved);
930 }
931 
932 BOOL
933 APIENTRY
935  _In_ DHPDEV dhpdev,
937 {
938  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
939 
940  ASSERT(ppdev);
941 
942  return ppdev->pldev->pfn.IcmDeleteColorTransform(dhpdev, hcmXform);
943 }
944 
945 BOOL
946 APIENTRY
948  DHPDEV dhpdev,
950  SURFOBJ *pso,
951  PBYTE paResults)
952 {
953  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
954 
955  ASSERT(ppdev);
956 
957  return ppdev->pldev->pfn.IcmCheckBitmapBits(dhpdev,
959  pso,
960  paResults);
961 }
962 
963 BOOL
964 APIENTRY
966  DHPDEV dhpdev,
967  ULONG iFormat,
968  LPVOID lpRamp)
969 {
970  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
971 
972  ASSERT(ppdev);
973 
974  return ppdev->pldev->pfn.IcmSetDeviceGammaRamp(dhpdev, iFormat, lpRamp);
975 }
976 
977 BOOL
978 APIENTRY
980  _Inout_ SURFOBJ *psoTrg,
981  _In_ CLIPOBJ *pco,
985  _In_ PVOID pMesh,
986  _In_ ULONG nMesh,
989  _In_ ULONG ulMode)
990 {
991  PPDEVOBJ ppdev = (PPDEVOBJ)psoTrg->hdev;
992  return 0;
993 }
994 
995 BOOL
996 APIENTRY
998  _Inout_ SURFOBJ *psoTrg,
1001  _In_ CLIPOBJ *pco,
1005  _In_ RECTL *prclDest,
1006  _In_ RECTL *prclSrc,
1008  _In_ ULONG iMode,
1009  _In_ BRUSHOBJ *pbo,
1010  _In_ DWORD rop4)
1011 {
1012  PPDEVOBJ ppdev = (PPDEVOBJ)psoTrg->hdev;
1013  return 0;
1014 }
1015 
1016 BOOL
1017 APIENTRY
1019  _Inout_ SURFOBJ *psoTrg,
1022  _In_ CLIPOBJ *pco,
1026  _In_ POINTFIX *pptfx,
1027  _In_ RECTL *prcl,
1028  _In_opt_ POINTL *pptl,
1029  _In_ ULONG iMode)
1030 {
1031  PPDEVOBJ ppdev = (PPDEVOBJ)psoTrg->hdev;
1032  return 0;
1033 }
1034 
1035 BOOL
1036 APIENTRY
1038  _Inout_ SURFOBJ *psoDest,
1039  _In_ SURFOBJ *psoSrc,
1040  _In_ CLIPOBJ *pco,
1042  _In_ RECTL *prclDest,
1043  _In_ RECTL *prclSrc,
1045 {
1046  return 0;
1047 }
1048 
1049 VOID
1050 APIENTRY
1052 {
1053  ASSERT(FALSE);
1054 }
1055 
1056 VOID
1057 APIENTRY
1059 {
1060  ASSERT(FALSE);
1061 }
1062 
1063 BOOL
1064 APIENTRY
1066  _Inout_ SURFOBJ *psoTrg,
1067  _In_ SURFOBJ *psoSrc,
1068  _In_ CLIPOBJ *pco,
1070  _In_ RECTL *prclDst,
1071  _In_ RECTL *prclSrc,
1074 {
1075  PPDEVOBJ ppdev = (PPDEVOBJ)psoTrg->hdev;
1076  return 0;
1077 }
1078 
1079 ULONG
1080 APIENTRY
1082  _In_ SURFOBJ *pso,
1084 {
1085  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
1086  return 0;
1087 }
1088 
1089 BOOL
1090 APIENTRY
1092  SURFOBJ *pso,
1093  XLATEOBJ *pxlo,
1094  XFORMOBJ *pxo,
1095  ULONG iType,
1096  ULONG cjIn,
1097  _In_ PVOID pvIn,
1098  ULONG cjOut,
1099  _Out_ PVOID pvOut)
1100 {
1101  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
1102  ASSERT(ppdev);
1103 
1104  return ppdev->pldev->pfn.QueryDeviceSupport(pso,
1105  pxlo,
1106  (PVOID)pxo, // FIXME!!!
1107  iType,
1108  cjIn,
1109  pvIn,
1110  cjOut,
1111  pvOut);
1112 }
1113 
1114 HBITMAP
1115 APIENTRY
1117  DD_DIRECTDRAW_GLOBAL *pDirectDraw,
1119 {
1120  return 0;
1121 }
1122 
1124 APIENTRY
1126  _In_ FONTOBJ *pfo,
1127  _In_ ULONG iMode)
1128 {
1129  return 0;
1130 }
1131 
1132 VOID
1133 APIENTRY
1135  SURFOBJ *pso,
1136  ULONG iType,
1137  PVOID pvData)
1138 {
1139  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
1140  ASSERT(ppdev);
1141 
1142  ppdev->pldev->pfn.Notify(pso, iType, pvData);
1143 }
1144 
1145 VOID
1146 APIENTRY
1148  SURFOBJ *pso,
1149  RECTL *prcl,
1150  FLONG fl)
1151 {
1152  PPDEVOBJ ppdev = (PPDEVOBJ)pso->hdev;
1153  ASSERT(ppdev);
1154 
1155  ppdev->pldev->pfn.SynchronizeSurface(pso, prcl, fl);
1156 }
1157 
1158 ULONG
1159 APIENTRY
1161  DHPDEV dhpdev,
1162  PVOID Reserved)
1163 {
1164  PPDEVOBJ ppdev = DbgLookupDHPDEV(dhpdev);
1165  ASSERT(ppdev);
1166 
1167  return ppdev->pldev->pfn.ResetDevice(dhpdev, Reserved);
1168 }
1169 
1170 PVOID
1172 {
1179  DbgDrvOffset,
1181  NULL, //DbgDrvDisableDriver,
1182  DbgDrvReserved, // Unknown1
1184  NULL, //DbgDrvDeleteDeviceBitmap,
1190  DbgDrvPaint,
1191  DbgDrvBitBlt,
1192  NULL, //DbgDrvCopyBits,
1193  NULL, //DbgDrvStretchBlt,
1196  NULL, //DbgDrvTextOut,
1197  NULL, //DbgDrvEscape,
1198  NULL, //DbgDrvDrawEscape,
1200  NULL, //DbgDrvQueryFontTree,
1202  NULL, //DbgDrvSetPointerShape,
1203  NULL, //DbgDrvMovePointer,
1204  NULL, //DbgDrvLineTo,
1205  NULL, //DbgDrvSendPage,
1206  NULL, //DbgDrvStartPage,
1207  NULL, //DbgDrvEndDoc,
1208  NULL, //DbgDrvStartDoc,
1213  NULL, //DbgDrvSaveScreenBits,
1214  NULL, //DbgDrvGetModes,
1215  NULL, //DbgDrvFree,
1216  NULL, //DbgDrvDestroyFont,
1217  NULL, //DbgDrvQueryFontCaps,
1218  NULL, //DbgDrvLoadFontFile,
1219  NULL, //DbgDrvUnloadFontFile,
1220  NULL, //DbgDrvFontManagement,
1221  NULL, //DbgDrvQueryTrueTypeTable,
1222  NULL, //DbgDrvQueryTrueTypeOutline,
1223  NULL, //DbgDrvGetTrueTypeFile,
1224  NULL, //DbgDrvQueryFontFile,
1226  NULL, //DbgDrvQueryAdvanceWidths,
1227  NULL, //DbgDrvSetPixelFormat,
1229  NULL, //DbgDrvSwapBuffers,
1230  NULL, //DbgDrvStartBanding,
1231  NULL, //DbgDrvNextBand,
1241  NULL, //DbgDrvGradientFill,
1242  NULL, //DbgDrvStretchBltROP,
1243  NULL, //DbgDrvPlgBlt,
1244  NULL, //DbgDrvAlphaBlend,
1245  NULL, //DbgSynthesizeFont,
1246  NULL, //DbgGetSynthesizedFontFiles,
1247  NULL, //DbgDrvTransparentBlt,
1248  NULL, //DbgDrvQueryPerBandInfo,
1258  NULL, //DbgDrvDeriveSurface,
1259  NULL, //DbgDrvQueryGlyphAttrs,
1260  DbgDrvNotify,
1266 };
ULONG APIENTRY DbgDrvDitherColor(_In_ DHPDEV dhpdev, _In_ ULONG iMode, _In_ ULONG rgb, _Inout_ ULONG *pul)
Definition: drvdbg.c:190
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
BOOL APIENTRY DbgDrvPlgBlt(_Inout_ SURFOBJ *psoTrg, _Inout_ SURFOBJ *psoSrc, _In_opt_ SURFOBJ *psoMsk, _In_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_opt_ COLORADJUSTMENT *pca, _In_opt_ POINTL *pptlBrushOrg, _In_ POINTFIX *pptfx, _In_ RECTL *prcl, _In_opt_ POINTL *pptl, _In_ ULONG iMode)
Definition: drvdbg.c:1018
_In_ HANDLE hColorTransform
Definition: winddi.h:3664
VOID APIENTRY DbgGetSynthesizedFontFiles(void)
Definition: drvdbg.c:1058
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG nMesh
Definition: winddi.h:3649
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
Definition: winddi.h:3835
#define IN
Definition: typedefs.h:38
BOOL APIENTRY DbgDrvGradientFill(_Inout_ SURFOBJ *psoTrg, _In_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_ TRIVERTEX *pVertex, _In_ ULONG nVertex, _In_ PVOID pMesh, _In_ ULONG nMesh, _In_ RECTL *prclExtents, _In_ POINTL *pptlDitherOrg, _In_ ULONG ulMode)
Definition: drvdbg.c:979
_In_ ULONG _In_ ULONG _In_ PTRDIFF _In_ ULONG _Outptr_opt_result_bytebuffer_all_maybenull_ pcjTable PBYTE * ppjTable
Definition: winddi.h:3946
_In_ ULONG _In_ ULONG _In_ ULONG cjOut
Definition: winddi.h:3583
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID pMesh
Definition: winddi.h:3649
_In_ STROBJ _In_ FONTOBJ _In_ CLIPOBJ _Null_ RECTL _In_opt_ RECTL _In_ BRUSHOBJ _In_ BRUSHOBJ * pboOpaque
Definition: winddi.h:4175
BOOL APIENTRY DbgDrvPaint(IN SURFOBJ *pso, IN CLIPOBJ *pco, IN BRUSHOBJ *pbo, IN POINTL *pptlBrushOrg, IN MIX mix)
Definition: drvdbg.c:257
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR * pdv
Definition: winddi.h:3723
LONG APIENTRY DbgDrvDescribePixelFormat(DHPDEV dhpdev, LONG iPixelFormat, ULONG cjpfd, PIXELFORMATDESCRIPTOR *ppfd)
Definition: drvdbg.c:800
BOOL APIENTRY DbgDrvLineTo(SURFOBJ *pso, CLIPOBJ *pco, BRUSHOBJ *pbo, LONG x1, LONG y1, LONG x2, LONG y2, RECTL *prclBounds, MIX mix)
Definition: drvdbg.c:550
typedef DHPDEV(APIENTRY FN_DrvEnablePDEV)(_In_ DEVMODEW *pdm
ULONG APIENTRY DbgDrvEscape(_In_ SURFOBJ *pso, _In_ ULONG iEsc, _In_ ULONG cjIn, _In_ PVOID pvIn, _In_ ULONG cjOut, _Out_ PVOID pvOut)
Definition: drvdbg.c:448
BOOL APIENTRY DbgDrvIcmDeleteColorTransform(_In_ DHPDEV dhpdev, _In_ HANDLE hcmXform)
Definition: drvdbg.c:934
#define BMF_32BPP
Definition: winddi.h:360
LONG APIENTRY DbgDrvQueryFontFile(ULONG_PTR iFile, ULONG ulMode, ULONG cjBuf, ULONG *pulBuf)
Definition: drvdbg.c:753
ULONG MIX
Definition: winddi.h:129
struct _LDEVOBJ * pldev
Definition: pdevobj.h:120
Definition: xlate.c:8
_Inout_ PATHOBJ _In_ CLIPOBJ _In_opt_ XFORMOBJ _In_ BRUSHOBJ _In_ LINEATTRS _In_ BRUSHOBJ _In_ POINTL _In_ MIX mixFill
Definition: winddi.h:4119
_In_ ULONG iMode
Definition: winddi.h:3520
_In_ FONTOBJ _In_ HGLYPH hglyph
Definition: winddi.h:3929
BOOL APIENTRY DbgDrvSetPalette(DHPDEV dhpdev, PALOBJ *ppalo, FLONG fl, ULONG iStart, ULONG cColors)
Definition: drvdbg.c:414
_In_ ULONG * pcj
Definition: winddi.h:3642
BOOL APIENTRY DbgDrvStartDoc(_In_ SURFOBJ *pso, _In_ LPWSTR pwszDocName, _In_ DWORD dwJobId)
Definition: drvdbg.c:595
_In_ ULONG iType
Definition: winddi.h:3748
_In_ WNDOBJ * pwo
Definition: winddi.h:4147
VOID APIENTRY DbgDrvMovePointer(_In_ SURFOBJ *pso, _In_ LONG x, _In_ LONG y, _In_ RECTL *prcl)
Definition: drvdbg.c:539
BOOL APIENTRY DbgDrvSendPage(_In_ SURFOBJ *pso)
Definition: drvdbg.c:567
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
_In_ FONTOBJ _In_ ULONG _In_ ULONG cGlyphs
Definition: winddi.h:3799
BOOL APIENTRY DbgDrvIcmCheckBitmapBits(DHPDEV dhpdev, HANDLE hColorTransform, SURFOBJ *pso, PBYTE paResults)
Definition: drvdbg.c:947
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ _In_opt_ POINTL _In_ ROP4 rop4
Definition: winddi.h:3433
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR _In_ ULONG ulLangID
Definition: winddi.h:3723
DHPDEV APIENTRY DbgDrvEnablePDEV(_In_ DEVMODEW *pdm, _In_ LPWSTR pwszLogAddress, ULONG cPat, _In_opt_ HSURF *phsurfPatterns, ULONG cjCaps, _Out_ ULONG *pdevcaps, ULONG cjDevInfo, _Out_ DEVINFO *pdi, HDEV hdev, _In_ LPWSTR pwszDeviceName, HANDLE hDriver)
Definition: drvdbg.c:24
#define ROP4_USES_MASK(Rop4)
Definition: inteng.h:47
HBITMAP APIENTRY DbgDrvDeriveSurface(DD_DIRECTDRAW_GLOBAL *pDirectDraw, DD_SURFACE_LOCAL *pSurface)
Definition: drvdbg.c:1116
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL * prclTrg
Definition: winddi.h:3433
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO _In_ HDEV _In_ LPWSTR _In_ HANDLE hDriver
Definition: winddi.h:3553
#define BMF_8RLE
Definition: winddi.h:362
_In_ UINT iStart
Definition: wingdi.h:3615
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
BOOL APIENTRY DbgDrvStartBanding(_In_ SURFOBJ *pso, _In_ POINTL *pptl)
Definition: drvdbg.c:825
_In_ LONG _In_ ULONG _Out_opt_ PIXELFORMATDESCRIPTOR * ppfd
Definition: winddi.h:3488
VOID APIENTRY DbgDrvCompletePDEV(DHPDEV dhpdev, HDEV hdev)
Definition: drvdbg.c:57
BOOL APIENTRY DbgDrvTextOut(SURFOBJ *pso, STROBJ *pstro, FONTOBJ *pfo, CLIPOBJ *pco, RECTL *prclExtra, RECTL *prclOpaque, BRUSHOBJ *pboFore, BRUSHOBJ *pboOpaque, POINTL *pptlOrg, MIX mix)
Definition: drvdbg.c:430
_In_ SIZEL sizl
Definition: winddi.h:3467
ULONG ROP4
Definition: winddi.h:128
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ ULONG iTransColor
Definition: winddi.h:4190
BOOL APIENTRY DbgDrvStartPage(_In_ SURFOBJ *pso)
Definition: drvdbg.c:576
BOOL APIENTRY DbgDrvSwapBuffers(SURFOBJ *pso, WNDOBJ *pwo)
Definition: drvdbg.c:815
#define IS_VALID_ROP4(rop)
Definition: inteng.h:49
BOOL APIENTRY DbgDrvIcmSetDeviceGammaRamp(DHPDEV dhpdev, ULONG iFormat, LPVOID lpRamp)
Definition: drvdbg.c:965
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL * prclExtents
Definition: winddi.h:3649
_In_ STROBJ _In_ FONTOBJ _In_ CLIPOBJ _Null_ RECTL * prclExtra
Definition: winddi.h:4175
BOOL APIENTRY DbgDrvTransparentBlt(_Inout_ SURFOBJ *psoTrg, _In_ SURFOBJ *psoSrc, _In_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_ RECTL *prclDst, _In_ RECTL *prclSrc, _In_ ULONG iTransColor, _In_ ULONG ulReserved)
Definition: drvdbg.c:1065
PVOID apfnDbgDrvFunctions[]
Definition: drvdbg.c:1171
#define _In_opt_
Definition: no_sal2.h:213
BOOL APIENTRY DbgDrvUnloadFontFile(ULONG_PTR iFile)
Definition: drvdbg.c:692
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG _In_opt_ RECTL * prclBounds
Definition: winddi.h:3706
_In_ SURFOBJ * psoSrc
Definition: winddi.h:3414
_In_ PATHOBJ * ppo
Definition: winddi.h:3591
BOOL APIENTRY DbgDrvStretchBltROP(_Inout_ SURFOBJ *psoTrg, _Inout_ SURFOBJ *psoSrc, _In_opt_ SURFOBJ *psoMask, _In_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_opt_ COLORADJUSTMENT *pca, _In_ POINTL *pptlHTOrg, _In_ RECTL *prclDest, _In_ RECTL *prclSrc, _In_opt_ POINTL *pptlMask, _In_ ULONG iMode, _In_ BRUSHOBJ *pbo, _In_ DWORD rop4)
Definition: drvdbg.c:997
uint32_t ULONG_PTR
Definition: typedefs.h:63
struct _PDEVOBJ * PPDEVOBJ
VOID APIENTRY DbgDrvSynchronize(DHPDEV dhpdev, RECTL *prcl)
Definition: drvdbg.c:619
BOOL APIENTRY DbgDrvOffset(SURFOBJ *pso, LONG x1, LONG x2, FLONG fl)
Definition: drvdbg.c:119
BOOL APIENTRY DbgDrvRealizeBrush(_In_ BRUSHOBJ *pbo, _Inout_ SURFOBJ *psoTarget, _In_ SURFOBJ *psoPattern, _In_opt_ SURFOBJ *psoMask, _In_ XLATEOBJ *pxlo, _In_ ULONG iHatch)
Definition: drvdbg.c:175
_In_ POINTL * pptl
Definition: winddi.h:3741
BOOL APIENTRY DbgDrvQueryAdvanceWidths(DHPDEV dhpdev, FONTOBJ *pfo, ULONG iMode, _In_ HGLYPH *phg, _Out_ PVOID pvWidths, ULONG cGlyphs)
Definition: drvdbg.c:775
VOID APIENTRY DbgDrvSynchronizeSurface(SURFOBJ *pso, RECTL *prcl, FLONG fl)
Definition: drvdbg.c:1147
ULONG APIENTRY DbgDrvGetModes(_In_ HANDLE hDriver, ULONG cjSize, _Out_opt_ DEVMODEW *pdm)
Definition: drvdbg.c:644
_In_ LONG _In_ ULONG cjpfd
Definition: winddi.h:3488
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
_In_ FLONG fl
Definition: winddi.h:1279
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
_In_ PATHOBJ _In_ CLIPOBJ _In_ BRUSHOBJ _In_ POINTL * pptlBrushOrg
Definition: winddi.h:3591
_Inout_ SURFOBJ * psoTarget
Definition: winddi.h:3959
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ XLATEOBJ _In_ LONG _In_ LONG yHot
Definition: winddi.h:4049
_In_ STROBJ _In_ FONTOBJ _In_ CLIPOBJ _Null_ RECTL _In_opt_ RECTL _In_ BRUSHOBJ _In_ BRUSHOBJ _In_ POINTL * pptlOrg
Definition: winddi.h:4175
_Inout_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_opt_ COLORADJUSTMENT _In_ POINTL * pptlHTOrg
Definition: winddi.h:4085
LONG APIENTRY DbgDrvQueryFontData(DHPDEV dhpdev, FONTOBJ *pfo, ULONG iMode, HGLYPH hg, GLYPHDATA *pgd, _Out_ PVOID pv, ULONG cjSize)
Definition: drvdbg.c:503
_Inout_ SURFOBJ _In_opt_ SURFOBJ * psoMsk
Definition: winddi.h:3775
BOOL APIENTRY DbgDrvAssertMode(_In_ DHPDEV dhpdev, _In_ BOOL bEnable)
Definition: drvdbg.c:106
LONG APIENTRY DbgDrvQueryTrueTypeTable(ULONG_PTR iFile, ULONG ulFont, ULONG ulTag, PTRDIFF dpStart, ULONG cjBuf, BYTE *pjBuf, PBYTE *ppjTable, ULONG *pcjTable)
Definition: drvdbg.c:714
_Out_ DD_HALINFO _Out_ DWORD _Out_ VIDEOMEMORY * pvmList
Definition: winddi.h:4226
_In_ ULONG _In_opt_ PVOID pvData
Definition: winddi.h:3748
VOID APIENTRY DbgDrvDestroyFont(FONTOBJ *pfo)
Definition: drvdbg.c:662
smooth NULL
Definition: ftsmooth.c:416
ULONG APIENTRY DbgDrvFontManagement(_In_ SURFOBJ *pso, _In_opt_ FONTOBJ *pfo, _In_ ULONG iMode, _In_ ULONG cjIn, _In_ PVOID pvIn, _In_ ULONG cjOut, _Out_ PVOID pvOut)
Definition: drvdbg.c:700
_In_ HANDLE hcmXform
Definition: winddi.h:3687
_In_ LPWSTR pwszDocName
Definition: winddi.h:4071
#define _Out_
Definition: no_sal2.h:323
_In_ ULONG_PTR * piFile
Definition: winddi.h:3720
ULONG_PTR APIENTRY DbgDrvSaveScreenBits(SURFOBJ *pso, ULONG iMode, ULONG_PTR ident, RECTL *prcl)
Definition: drvdbg.c:632
_Out_ DD_CALLBACKS _Out_ DD_SURFACECALLBACKS _Out_ DD_PALETTECALLBACKS * pPaletteCallBacks
Definition: winddi.h:4217
_Inout_ PATHOBJ _In_ CLIPOBJ _In_opt_ XFORMOBJ _In_ BRUSHOBJ _In_ LINEATTRS _In_ BRUSHOBJ * pboFill
Definition: winddi.h:4119
VOID APIENTRY DbgDrvFree(PVOID pv, ULONG_PTR id)
Definition: drvdbg.c:654
_Inout_ PERBANDINFO * pbi
Definition: winddi.h:3917
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
#define ROP4_USES_SOURCE(Rop4)
Definition: inteng.h:45
BOOL APIENTRY DbgDrvStretchBlt(_Inout_ SURFOBJ *psoTrg, _Inout_ SURFOBJ *psoSrc, _In_opt_ SURFOBJ *psoMask, _In_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_opt_ COLORADJUSTMENT *pca, _In_ POINTL *pptlHTOrg, _In_ RECTL *prclDest, _In_ RECTL *prclSrc, _In_opt_ POINTL *pptlMask, _In_ ULONG iMode)
Definition: drvdbg.c:393
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ _In_opt_ POINTL * pptlBrush
Definition: winddi.h:3433
unsigned long FLONG
Definition: ntbasedef.h:373
LONG APIENTRY DbgDrvQueryFontCaps(ULONG culCaps, ULONG *pulCaps)
Definition: drvdbg.c:669
_In_ FONTOBJ _In_ HGLYPH _In_ BOOL _Out_opt_ GLYPHDATA * pgldt
Definition: winddi.h:3929
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
VOID APIENTRY DbgDrvMovePanning(LONG x, LONG y, FLONG fl)
Definition: drvdbg.c:764
VOID APIENTRY DbgSynthesizeFont(void)
Definition: drvdbg.c:1051
_In_ ULONG ulFont
Definition: winddi.h:3941
typedef HSURF(APIENTRY FN_DrvEnableSurface)(_In_ DHPDEV dhpdev)
BOOL APIENTRY DbgDrvStrokeAndFillPath(_Inout_ SURFOBJ *pso, _Inout_ PATHOBJ *ppo, _In_ CLIPOBJ *pco, _In_opt_ XFORMOBJ *pxo, _In_ BRUSHOBJ *pboStroke, _In_ LINEATTRS *plineattrs, _In_ BRUSHOBJ *pboFill, _In_ POINTL *pptlBrushOrg, _In_ MIX mixFill, _In_ FLONG flOptions)
Definition: drvdbg.c:238
_In_ ULONG _In_ ULONG_PTR ident
Definition: winddi.h:3993
_In_ HANDLE _In_ SURFOBJ * pso
Definition: winddi.h:3664
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX * pVertex
Definition: winddi.h:3649
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL * prclSrc
Definition: winddi.h:3414
_In_opt_ FONTOBJ * pfo
Definition: winddi.h:3603
#define _Out_opt_
Definition: no_sal2.h:339
ULONG APIENTRY DbgDrvSetPointerShape(_In_ SURFOBJ *pso, _In_ SURFOBJ *psoMask, _In_ SURFOBJ *psoColor, _In_ XLATEOBJ *pxlo, _In_ LONG xHot, _In_ LONG yHot, _In_ LONG x, _In_ LONG y, _In_ RECTL *prcl, _In_ FLONG fl)
Definition: drvdbg.c:521
#define DC_RECT
Definition: winddi.h:260
ULONG APIENTRY DbgDrvDrawEscape(_In_ SURFOBJ *pso, _In_ ULONG iEsc, _In_ CLIPOBJ *pco, _In_ RECTL *prcl, _In_ ULONG cjIn, _In_ PVOID pvIn)
Definition: drvdbg.c:462
BOOL APIENTRY DbgDrvAlphaBlend(_Inout_ SURFOBJ *psoDest, _In_ SURFOBJ *psoSrc, _In_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_ RECTL *prclDest, _In_ RECTL *prclSrc, _In_ BLENDOBJ *pBlendObj)
Definition: drvdbg.c:1037
_In_ FONTOBJ _In_ ULONG _In_ HGLYPH hg
Definition: winddi.h:3869
_In_ STROBJ * pstro
Definition: winddi.h:4175
#define HOOK_BITBLT
Definition: winddi.h:1420
_In_ ULONG _In_ ULONG _In_ PTRDIFF dpStart
Definition: winddi.h:3941
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ * pbo
Definition: winddi.h:3433
_In_ DD_SURFACE_LOCAL * pSurface
Definition: winddi.h:3481
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ ULONG _In_ ULONG ulReserved
Definition: winddi.h:4190
HBITMAP APIENTRY DbgDrvCreateDeviceBitmap(DHPDEV dhpdev, SIZEL sizl, ULONG iFormat)
Definition: drvdbg.c:153
ULONG APIENTRY DbgDrvResetDevice(DHPDEV dhpdev, PVOID Reserved)
Definition: drvdbg.c:1160
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ XLATEOBJ _In_ LONG xHot
Definition: winddi.h:4049
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL APIENTRY DbgDrvNextBand(_In_ SURFOBJ *pso, _In_ POINTL *pptl)
Definition: drvdbg.c:835
ULONG APIENTRY DbgDrvGetGlyphMode(_In_ DHPDEV dhpdev, _In_ FONTOBJ *pfo)
Definition: drvdbg.c:606
#define _Inout_
Definition: no_sal2.h:244
BOOL APIENTRY DbgDrvGetDirectDrawInfo(DHPDEV dhpdev, DD_HALINFO *pHalInfo, DWORD *pdwNumHeaps, VIDEOMEMORY *pvmList, DWORD *pdwNumFourCCCodes, DWORD *pdwFourCC)
Definition: drvdbg.c:845
_In_ ULONG_PTR _In_ ULONG iFace
Definition: winddi.h:3835
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL * prclDest
Definition: winddi.h:3414
_In_ LPWSTR pwszLogAddress
Definition: winddi.h:3548
_Out_ DD_HALINFO * pHalInfo
Definition: winddi.h:4226
HANDLE APIENTRY DbgDrvIcmCreateColorTransform(_In_ DHPDEV dhpdev, _In_ LPLOGCOLORSPACEW pLogColorSpace, _In_opt_ PVOID pvSourceProfile, _In_ ULONG cjSourceProfile, _In_ PVOID pvDestProfile, _In_ ULONG cjDestProfile, _In_opt_ PVOID pvTargetProfile, _In_ ULONG cjTargetProfile, _In_ DWORD dwReserved)
Definition: drvdbg.c:906
_In_ PALOBJ * ppalo
Definition: winddi.h:4012
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
BOOL APIENTRY DbgDrvQuerySpoolType(DHPDEV PDev, LPWSTR SpoolType)
Definition: drvdbg.c:897
_In_ DWORD cjBuf
Definition: winddi.h:3827
_In_ LPLOGCOLORSPACEW _In_ ULONG _In_ ULONG _In_ ULONG cjTargetProfile
Definition: winddi.h:3679
BOOL APIENTRY DbgDrvFillPath(_Inout_ SURFOBJ *pso, _In_ PATHOBJ *ppo, _In_ CLIPOBJ *pco, _In_ BRUSHOBJ *pbo, _In_ POINTL *pptlBrushOrg, _In_ MIX mix, _In_ FLONG flOptions)
Definition: drvdbg.c:222
HDEV hdev
Definition: winddi.h:1208
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR _In_ ULONG _In_ ULONG ulFastCheckSum
Definition: winddi.h:3723
_In_ SURFOBJ _In_ CLIPOBJ * pco
Definition: winddi.h:3414
unsigned char BYTE
Definition: mem.h:68
_Out_ DD_CALLBACKS * pCallBacks
Definition: winddi.h:4217
_In_ ULONG iEsc
Definition: winddi.h:3529
VOID APIENTRY DbgDrvNotify(SURFOBJ *pso, ULONG iType, PVOID pvData)
Definition: drvdbg.c:1134
_In_ ULONG _In_ CLIPOBJ _In_ RECTL _In_ ULONG cjIn
Definition: winddi.h:3529
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3706
_Out_ DD_HALINFO _Out_ DWORD _Out_ VIDEOMEMORY _Out_ DWORD * pdwNumFourCCCodes
Definition: winddi.h:4226
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO _In_ HDEV _In_ LPWSTR pwszDeviceName
Definition: winddi.h:3553
_Out_ DD_CALLBACKS _Out_ DD_SURFACECALLBACKS * pSurfaceCallBacks
Definition: winddi.h:4217
_In_ FONTOBJ _In_ ULONG _In_ HGLYPH _In_opt_ GLYPHDATA * pgd
Definition: winddi.h:3869
_Inout_ SURFOBJ _In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_opt_ XLATEOBJ _In_ ULONG iHatch
Definition: winddi.h:3959
_In_ FONTOBJ _In_ HGLYPH _In_ BOOL bMetricsOnly
Definition: winddi.h:3929
_In_ LPLOGCOLORSPACEW pLogColorSpace
Definition: winddi.h:3673
_In_ SIZEL _In_ ULONG iFormat
Definition: winddi.h:3467
ULONG APIENTRY DbgDrvQueryPerBandInfo(_In_ SURFOBJ *pso, _Inout_ PERBANDINFO *pbi)
Definition: drvdbg.c:1081
_Inout_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_opt_ COLORADJUSTMENT * pca
Definition: winddi.h:3775
_In_ LPLOGCOLORSPACEW _In_ ULONG cjSourceProfile
Definition: winddi.h:3675
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoColor
Definition: winddi.h:4049
#define HOOK_COPYBITS
Definition: winddi.h:1429
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL * pptlMask
Definition: winddi.h:3433
#define ERR(fmt,...)
Definition: debug.h:109
#define _In_
Definition: no_sal2.h:204
VOID DbgDrvReserved(void)
Definition: drvdbg.c:17
_In_ ULONG _In_ ULONG ulTag
Definition: winddi.h:3941
PVOID APIENTRY DbgDrvQueryFontTree(DHPDEV dhpdev, ULONG_PTR iFile, ULONG iFace, ULONG iMode, ULONG_PTR *pid)
Definition: drvdbg.c:491
VOID APIENTRY DbgDrvDisableDriver(void)
Definition: drvdbg.c:146
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL _In_ POINTL _In_ ULONG ulMode
Definition: winddi.h:3649
HSURF APIENTRY DbgDrvEnableSurface(DHPDEV dhpdev)
Definition: drvdbg.c:82
_In_ BOOL bEnable
Definition: winddi.h:3426
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL * pptlSrc
Definition: winddi.h:3433
FORCEINLINE BOOL RECTL_bIsWellOrdered(_In_ const RECTL *prcl)
Definition: rect.h:63
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ BLENDOBJ * pBlendObj
Definition: winddi.h:3414
_Out_ DD_HALINFO _Out_ DWORD _Out_ VIDEOMEMORY _Out_ DWORD _Out_ DWORD * pdwFourCC
Definition: winddi.h:4226
_In_ ULONG _In_ ULONG rgb
Definition: winddi.h:3520
_In_ ULONG _In_ ULONG _In_ PTRDIFF _In_ ULONG _Outptr_opt_result_bytebuffer_all_maybenull_ pcjTable PBYTE _Out_opt_ ULONG * pcjTable
Definition: winddi.h:3946
_In_ LPWSTR _In_ ULONG cPat
Definition: winddi.h:3548
_In_ LPWSTR _In_ DWORD dwJobId
Definition: winddi.h:4071
#define ROP4_USES_PATTERN(Rop4)
Definition: inteng.h:46
FLONG flags
Definition: surface.h:10
_In_ PATHOBJ _In_ CLIPOBJ _In_ BRUSHOBJ _In_ POINTL _In_ MIX mix
Definition: winddi.h:3591
_In_ STROBJ _In_ FONTOBJ _In_ CLIPOBJ _Null_ RECTL _In_opt_ RECTL _In_ BRUSHOBJ * pboFore
Definition: winddi.h:4175
_In_ LONG iPixelFormat
Definition: winddi.h:3488
ULONG APIENTRY DbgDrvResetPDEV(DHPDEV dhpdev, PVOID Reserved)
Definition: drvdbg.c:133
_Inout_ PATHOBJ _In_ CLIPOBJ _In_opt_ XFORMOBJ _In_ BRUSHOBJ _In_ LINEATTRS * plineattrs
Definition: winddi.h:4119
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG cjDevInfo
Definition: winddi.h:3553
BOOL APIENTRY DbgDrvStrokePath(_Inout_ SURFOBJ *pso, _In_ PATHOBJ *ppo, _In_ CLIPOBJ *pco, _In_opt_ XFORMOBJ *pxo, _In_ BRUSHOBJ *pbo, _In_ POINTL *pptlBrushOrg, _In_ LINEATTRS *plineattrs, _In_ MIX mix)
Definition: drvdbg.c:205
BOOL APIENTRY DbgDrvQueryDeviceSupport(SURFOBJ *pso, XLATEOBJ *pxlo, XFORMOBJ *pxo, ULONG iType, ULONG cjIn, _In_ PVOID pvIn, ULONG cjOut, _Out_ PVOID pvOut)
Definition: drvdbg.c:1091
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoMask
Definition: winddi.h:3433
#define _When_(expr, annos)
Definition: no_sal2.h:639
BOOL APIENTRY DbgDrvEnableDirectDraw(DHPDEV dhpdev, DD_CALLBACKS *pCallBacks, DD_SURFACECALLBACKS *pSurfaceCallBacks, DD_PALETTECALLBACKS *pPaletteCallBacks)
Definition: drvdbg.c:867
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
BOOL APIENTRY DbgDrvSetPixelFormat(SURFOBJ *pso, LONG iPixelFormat, HWND hwnd)
Definition: drvdbg.c:789
PFD_GLYPHATTR APIENTRY DbgDrvQueryGlyphAttrs(_In_ FONTOBJ *pfo, _In_ ULONG iMode)
Definition: drvdbg.c:1125
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706
_In_ XLATEOBJ _In_ XFORMOBJ * pxo
Definition: winddi.h:3810
_In_ ULONG _In_ CLIPOBJ _In_ RECTL * prcl
Definition: winddi.h:3529
VOID APIENTRY DbgDrvDisableDirectDraw(DHPDEV dhpdev)
Definition: drvdbg.c:885
VOID APIENTRY DbgDrvDisablePDEV(DHPDEV dhpdev)
Definition: drvdbg.c:70
_In_ LPWSTR _In_ ULONG _In_ ULONG cjCaps
Definition: winddi.h:3551
DBG_DEFAULT_CHANNEL(EngDev)
_Inout_ SURFOBJ _In_opt_ SURFOBJ * psoPattern
Definition: winddi.h:3959
_In_ ULONG_PTR iFile
Definition: winddi.h:3835
unsigned int ULONG
Definition: retypes.h:1
_In_ ULONG cjSize
Definition: winddi.h:3634
_Inout_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_opt_ COLORADJUSTMENT _In_opt_ POINTL _In_ POINTFIX * pptfx
Definition: winddi.h:3775
PVOID APIENTRY DbgDrvGetTrueTypeFile(ULONG_PTR iFile, ULONG *pcj)
Definition: drvdbg.c:744
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG nVertex
Definition: winddi.h:3649
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL _In_ POINTL * pptlDitherOrg
Definition: winddi.h:3649
static HBITMAP
Definition: button.c:44
_In_ PATHOBJ _In_ CLIPOBJ _In_ BRUSHOBJ _In_ POINTL _In_ MIX _In_ FLONG flOptions
Definition: winddi.h:3591
LONG APIENTRY DbgDrvQueryTrueTypeOutline(DHPDEV dhpdev, FONTOBJ *pfo, HGLYPH hglyph, BOOL bMetricsOnly, GLYPHDATA *pgldt, ULONG cjBuf, TTPOLYGONHEADER *ppoly)
Definition: drvdbg.c:729
_Inout_ PATHOBJ _In_ CLIPOBJ _In_opt_ XFORMOBJ _In_ BRUSHOBJ * pboStroke
Definition: winddi.h:4119
BOOL APIENTRY DbgDrvEndDoc(_In_ SURFOBJ *pso, _In_ FLONG fl)
Definition: drvdbg.c:585
_In_ STROBJ _In_ FONTOBJ _In_ CLIPOBJ _Null_ RECTL _In_opt_ RECTL * prclOpaque
Definition: winddi.h:4175
_Out_ DD_HALINFO _Out_ DWORD * pdwNumHeaps
Definition: winddi.h:4226
WCHAR * LPWSTR
Definition: xmlstorage.h:184
LONG PTRDIFF
Definition: winddi.h:124
BOOL APIENTRY DbgDrvBitBlt(_Inout_ SURFOBJ *psoTrg, _In_opt_ SURFOBJ *psoSrc, _In_opt_ SURFOBJ *psoMask, _In_opt_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_ RECTL *prclTrg, _When_(psoSrc, _In_) POINTL *pptlSrc, _When_(psoMask, _In_) POINTL *pptlMask, _In_opt_ BRUSHOBJ *pbo, _When_(pbo, _In_) POINTL *pptlBrush, _In_ ROP4 rop4)
Definition: drvdbg.c:270
VOID APIENTRY DbgDrvDisableSurface(DHPDEV dhpdev)
Definition: drvdbg.c:94
PIFIMETRICS APIENTRY DbgDrvQueryFont(DHPDEV dhpdev, ULONG_PTR iFile, ULONG iFace, ULONG_PTR *pid)
Definition: drvdbg.c:476
BOOL APIENTRY DbgDrvCopyBits(SURFOBJ *psoTrg, SURFOBJ *psoSrc, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclTrg, POINTL *pptlSrc)
Definition: drvdbg.c:359
#define __FUNCTION__
Definition: types.h:112
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL * prclDst
Definition: winddi.h:4190
BYTE * PBYTE
Definition: pedump.c:66
VOID APIENTRY DbgDrvDeleteDeviceBitmap(DHSURF dhsurf)
Definition: drvdbg.c:167
_In_ LPLOGCOLORSPACEW _In_ ULONG _In_ ULONG cjDestProfile
Definition: winddi.h:3677
_In_ HDEV hdev
Definition: winddi.h:3449
ULONG_PTR APIENTRY DbgDrvLoadFontFile(ULONG cFiles, ULONG_PTR *piFile, PVOID *ppvView, ULONG *pcjView, DESIGNVECTOR *pdv, ULONG ulLangID, ULONG ulFastCheckSum)
Definition: drvdbg.c:678
#define APIENTRY
Definition: api.h:79
PPDEVOBJ NTAPI DbgLookupDHPDEV(DHPDEV dhpdev)
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO * pdi
Definition: winddi.h:3553
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ * pxlo
Definition: winddi.h:3414