xref: /reactos/sdk/include/psdk/ntgdi.h (revision c2c66aff)
1 /*
2  * NtGdi Entrypoints
3  */
4 #pragma once
5 #ifndef _NTGDI_
6 #define _NTGDI_
7 
8 #ifndef W32KAPI
9 #define W32KAPI  DECLSPEC_ADDRSAFE
10 #endif
11 
12 #ifndef _WINDOWBLT_NOTIFICATION_
13 #define _WINDOWBLT_NOTIFICATION_
14 #endif
15 
16 #ifdef  COMBOX_SANDBOX
17 #define DX_LONGHORN_PRESERVEDC
18 #endif
19 
20 #define TRACE_SURFACE_ALLOCS        (DBG || 0)
21 
22 /* NtGdiGetLinkedUfis */
23 #define FL_UFI_PRIVATEFONT          1
24 #define FL_UFI_DESIGNVECTOR_PFF     2
25 #define FL_UFI_MEMORYFONT           4
26 
27 /* NtGdiSetIcmMode */
28 #define ICM_SET_MODE                1
29 #define ICM_SET_CALIBRATE_MODE      2
30 #define ICM_SET_COLOR_MODE          3
31 #define ICM_CHECK_COLOR_MODE        4
32 
33 /* NtGdiCreateColorSpace */
34 #define LCSEX_ANSICREATED           1
35 #define LCSEX_TEMPPROFILE           2
36 
37 /* NtGdiGetStats */
38 #define GS_NUM_OBJS_ALL             0
39 #define GS_HANDOBJ_CURRENT          1
40 #define GS_HANDOBJ_MAX              2
41 #define GS_HANDOBJ_ALLOC            3
42 #define GS_LOOKASIDE_INFO           4
43 
44 /* NtGdiEnumFontOpen */
45 #define TYPE_ENUMFONTS              1
46 #define TYPE_ENUMFONTFAMILIES       2
47 #define TYPE_ENUMFONTFAMILIESEX     3
48 
49 typedef enum _COLORPALETTEINFO
50 {
51     ColorPaletteQuery,
52     ColorPaletteSet
53 } COLORPALETTEINFO, *PCOLORPALETTEINFO;
54 
55 /* NtGdiIcmBrushInfo */
56 typedef enum _ICM_DIB_INFO_CMD
57 {
58     IcmQueryBrush,
59     IcmSetBrush
60 } ICM_DIB_INFO, *PICM_DIB_INFO;
61 
62 /* NtGdiCreateColorSpace */
63 typedef struct _LOGCOLORSPACEEXW
64 {
65     LOGCOLORSPACEW lcsColorSpace;
66     DWORD dwFlags;
67 } LOGCOLORSPACEEXW, *PLOGCOLORSPACEEXW;
68 
69 typedef struct _POLYPATBLT
70 {
71   INT nXLeft;
72   INT nYLeft;
73   INT nWidth;
74   INT nHeight;
75   HBRUSH hBrush;
76 } POLYPATBLT, *PPOLYPATBLT;
77 
78 /* NtGdiAddRemoteMMInstanceToDC */
79 typedef struct tagDOWNLOADDESIGNVECTOR
80 {
81     UNIVERSAL_FONT_ID ufiBase;
82     DESIGNVECTOR dv;
83 } DOWNLOADDESIGNVECTOR;
84 
85 /* NtGdiResetDC */
86 typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;
87 
88 #if 0
89 typedef struct _HLSURF_INFORMATION_PROBE {
90     union {
91         HLSURF_INFORMATION_SURFACE       Surface;
92         HLSURF_INFORMATION_PRESENTFLAGS  PresentFlags;
93         HLSURF_INFORMATION_TOKENUPDATEID UpdateId;
94         HLSURF_INFORMATION_SET_SIGNALING SetSignaling;
95         DWMSURFACEDATA                   SurfaceData;
96         HLSURF_INFORMATION_DIRTYREGIONS  DirtyRegions;
97         HLSURF_INFORMATION_REDIRSTYLE    RedirStyle;
98         HLSURF_INFORMATION_SET_GERNERATE_MOVE_DATA SetGenerateMoveData;
99     } u;
100 } HLSURF_INFORMATION_PROBE, *PHLSURF_INFORMATION_PROBE;
101 #endif // 0
102 
103 __kernel_entry
104 W32KAPI
105 BOOL
106 APIENTRY
107 NtGdiInit(
108     VOID);
109 
110 __kernel_entry
111 W32KAPI
112 INT
113 APIENTRY
114 NtGdiSetDIBitsToDeviceInternal(
115     _In_ HDC hdcDest,
116     _In_ INT xDst,
117     _In_ INT yDst,
118     _In_ DWORD cx,
119     _In_ DWORD cy,
120     _In_ INT xSrc,
121     _In_ INT ySrc,
122     _In_ DWORD iStartScan,
123     _In_ DWORD cNumScan,
124     _In_reads_bytes_(cjMaxBits) LPBYTE pInitBits,
125     _In_reads_bytes_(cjMaxInfo) LPBITMAPINFO pbmi,
126     _In_ DWORD iUsage,
127     _In_ UINT cjMaxBits,
128     _In_ UINT cjMaxInfo,
129     _In_ BOOL bTransformCoordinates,
130     _In_opt_ HANDLE hcmXform
131 );
132 
133 #if WINVER >= 0x601
134 __kernel_entry
135 W32KAPI
136 HBITMAP
137 APIENTRY
138 NtGdiCreateSessionMappedDIBSection(
139     _In_opt_ HDC hdc,
140     _In_opt_ HANDLE hSectionApp,
141     _In_ DWORD dwOffset,
142     _In_reads_bytes_opt_(cjHeader) LPBITMAPINFO pbmi,
143     _In_ DWORD iUsage,
144     _In_ UINT cjHeader,
145     _In_ FLONG fl,
146     _In_ ULONG_PTR dwColorSpace);
147 #endif
148 
149 __kernel_entry
150 W32KAPI
151 BOOL
152 APIENTRY
153 NtGdiGetFontResourceInfoInternalW(
154     _In_reads_z_(cwc) LPWSTR pwszFiles,
155     _In_ ULONG cwc,
156     _In_ ULONG cFiles,
157     _In_ UINT cjBuf,
158     _Out_ LPDWORD pdwBytes,
159     _Out_writes_bytes_(cjBuf) LPVOID pvBuf,
160     _In_ DWORD iType);
161 
162 __kernel_entry
163 W32KAPI
164 DWORD
165 APIENTRY
166 NtGdiGetGlyphIndicesW(
167     _In_ HDC hdc,
168     _In_reads_opt_(cwc) LPCWSTR pwc,
169     _In_ INT cwc,
170     _Out_writes_opt_(cwc) LPWORD pgi,
171     _In_ DWORD iMode);
172 
173 __kernel_entry
174 W32KAPI
175 DWORD
176 APIENTRY
177 NtGdiGetGlyphIndicesWInternal(
178     _In_ HDC hdc,
179     _In_reads_opt_(cwc) LPWSTR pwc,
180     _In_ INT cwc,
181     _Out_writes_opt_(cwc) LPWORD pgi,
182     _In_ DWORD iMode,
183     _In_ BOOL bSubset);
184 
185 __kernel_entry
186 W32KAPI
187 HPALETTE
188 APIENTRY
189 NtGdiCreatePaletteInternal(
190     _In_reads_bytes_(cEntries * 4 + 4) LPLOGPALETTE pLogPal,
191     _In_ UINT cEntries);
192 
193 __kernel_entry
194 W32KAPI
195 BOOL
196 APIENTRY
197 NtGdiArcInternal(
198     _In_ ARCTYPE arctype,
199     _In_ HDC hdc,
200     _In_ INT x1,
201     _In_ INT y1,
202     _In_ INT x2,
203     _In_ INT y2,
204     _In_ INT x3,
205     _In_ INT y3,
206     _In_ INT x4,
207     _In_ INT y4);
208 
209 __kernel_entry
210 W32KAPI
211 INT
212 APIENTRY
213 NtGdiStretchDIBitsInternal(
214     _In_ HDC hdc,
215     _In_ INT xDst,
216     _In_ INT yDst,
217     _In_ INT cxDst,
218     _In_ INT cyDst,
219     _In_ INT xSrc,
220     _In_ INT ySrc,
221     _In_ INT cxSrc,
222     _In_ INT cySrc,
223     _In_reads_bytes_opt_(cjMaxBits) LPBYTE pjInit,
224     _In_ LPBITMAPINFO pbmi,
225     _In_ DWORD dwUsage,
226     _In_ DWORD dwRop4,
227     _In_ UINT cjMaxInfo,
228     _In_ UINT cjMaxBits,
229     _In_opt_ HANDLE hcmXform);
230 
231 __kernel_entry
232 W32KAPI
233 ULONG
234 APIENTRY
235 NtGdiGetOutlineTextMetricsInternalW(
236     _In_ HDC hdc,
237     _In_ ULONG cjotm,
238     _Out_writes_bytes_opt_(cjotm) OUTLINETEXTMETRICW *potmw,
239     _Out_ TMDIFF *ptmd);
240 
241 _Success_(return != FALSE)
242 __kernel_entry
243 W32KAPI
244 BOOL
245 APIENTRY
246 NtGdiGetAndSetDCDword(
247     _In_ HDC hdc,
248     _In_ UINT u,
249     _In_ DWORD dwIn,
250     _Out_ DWORD *pdwResult);
251 
252 __kernel_entry
253 W32KAPI
254 HANDLE
255 APIENTRY
256 NtGdiGetDCObject(
257     _In_ HDC hdc,
258     _In_ INT itype);
259 
260 __kernel_entry
261 W32KAPI
262 HDC
263 APIENTRY
264 NtGdiGetDCforBitmap(
265     _In_ HBITMAP hsurf);
266 
267 __kernel_entry
268 W32KAPI
269 BOOL
270 APIENTRY
271 NtGdiGetMonitorID(
272     _In_ HDC hdc,
273     _In_ DWORD cjSize,
274     _Out_writes_bytes_(cjSize) LPWSTR pszMonitorID);
275 
276 __kernel_entry
277 W32KAPI
278 INT
279 APIENTRY
280 NtGdiGetLinkedUFIs(
281     _In_ HDC hdc,
282     _Out_writes_opt_(cBufferSize) PUNIVERSAL_FONT_ID pufiLinkedUFIs,
283     _In_ INT cBufferSize);
284 
285 __kernel_entry
286 W32KAPI
287 BOOL
288 APIENTRY
289 NtGdiSetLinkedUFIs(
290     _In_ HDC hdc,
291      _In_reads_(uNumUFIs) PUNIVERSAL_FONT_ID pufiLinks,
292     _In_ ULONG uNumUFIs);
293 
294 __kernel_entry
295 W32KAPI
296 BOOL
297 APIENTRY
298 NtGdiGetUFI(
299     _In_ HDC hdc,
300     _Out_ PUNIVERSAL_FONT_ID pufi,
301     _Out_opt_ DESIGNVECTOR *pdv,
302     _Out_ ULONG *pcjDV,
303     _Out_ ULONG *pulBaseCheckSum,
304     _Out_ FLONG *pfl);
305 
306 __kernel_entry
307 W32KAPI
308 BOOL
309 APIENTRY
310 NtGdiForceUFIMapping(
311     _In_ HDC hdc,
312     _In_ PUNIVERSAL_FONT_ID pufi);
313 
314 __kernel_entry
315 W32KAPI
316 BOOL
317 APIENTRY
318 NtGdiGetUFIPathname(
319     _In_ PUNIVERSAL_FONT_ID pufi,
320     _Deref_out_range_(0, MAX_PATH * 3) ULONG* pcwc,
321     _Out_writes_to_opt_(MAX_PATH * 3, *pcwc) LPWSTR pwszPathname,
322     _Out_opt_ ULONG* pcNumFiles,
323     _In_ FLONG fl,
324     _Out_opt_ BOOL *pbMemFont,
325     _Out_opt_ ULONG *pcjView,
326     _Out_opt_ PVOID pvView,
327     _Out_opt_ BOOL *pbTTC,
328     _Out_opt_ ULONG *piTTC);
329 
330 __kernel_entry
331 W32KAPI
332 BOOL
333 APIENTRY
334 NtGdiAddRemoteFontToDC(
335     _In_ HDC hdc,
336     _In_reads_bytes_(cjBuffer) PVOID pvBuffer,
337     _In_ ULONG cjBuffer,
338     _In_opt_ PUNIVERSAL_FONT_ID pufi);
339 
340 __kernel_entry
341 W32KAPI
342 HANDLE
343 APIENTRY
344 NtGdiAddFontMemResourceEx(
345     _In_reads_bytes_(cjBuffer) PVOID pvBuffer,
346     _In_ DWORD cjBuffer,
347     _In_reads_bytes_opt_(cjDV) DESIGNVECTOR *pdv,
348     _In_ ULONG cjDV,
349     _Out_ DWORD *pNumFonts);
350 
351 __kernel_entry
352 W32KAPI
353 BOOL
354 APIENTRY
355 NtGdiRemoveFontMemResourceEx(
356     _In_ HANDLE hMMFont);
357 
358 __kernel_entry
359 W32KAPI
360 BOOL
361 APIENTRY
362 NtGdiUnmapMemFont(
363     _In_ PVOID pvView);
364 
365 __kernel_entry
366 W32KAPI
367 BOOL
368 APIENTRY
369 NtGdiRemoveMergeFont(
370     _In_ HDC hdc,
371     _In_ UNIVERSAL_FONT_ID *pufi);
372 
373 __kernel_entry
374 W32KAPI
375 BOOL
376 APIENTRY
377 NtGdiAnyLinkedFonts(
378     VOID);
379 
380 __kernel_entry
381 W32KAPI
382 BOOL
383 APIENTRY
384 NtGdiGetEmbUFI(
385     _In_ HDC hdc,
386     _Out_ PUNIVERSAL_FONT_ID pufi,
387     _Out_opt_ DESIGNVECTOR *pdv,
388     _Out_ ULONG *pcjDV,
389     _Out_ ULONG *pulBaseCheckSum,
390     _Out_ FLONG  *pfl,
391     _Out_ KERNEL_PVOID *embFontID);
392 
393 __kernel_entry
394 W32KAPI
395 ULONG
396 APIENTRY
397 NtGdiGetEmbedFonts(
398     VOID);
399 
400 __kernel_entry
401 W32KAPI
402 BOOL
403 APIENTRY
404 NtGdiChangeGhostFont(
405     _In_ KERNEL_PVOID *pfontID,
406     _In_ BOOL bLoad);
407 
408 __kernel_entry
409 W32KAPI
410 BOOL
411 APIENTRY
412 NtGdiAddEmbFontToDC(
413     _In_ HDC hdc,
414     _In_ PVOID *pFontID);
415 
416 __kernel_entry
417 W32KAPI
418 BOOL
419 APIENTRY
420 NtGdiFontIsLinked(
421     _In_ HDC hdc);
422 
423 __kernel_entry
424 W32KAPI
425 ULONG_PTR
426 APIENTRY
427 NtGdiPolyPolyDraw(
428     _In_ HDC hdc,
429     _In_ PPOINT ppt,
430     _In_reads_(ccpt) PULONG pcpt,
431     _In_ ULONG ccpt,
432     _In_ INT iFunc);
433 
434 __kernel_entry
435 W32KAPI
436 LONG
437 APIENTRY
438 NtGdiDoPalette(
439     _In_ HGDIOBJ hObj,
440     _In_ WORD iStart,
441     _In_ WORD cEntries,
442     _When_(bInbound!=0, _In_reads_bytes_(cEntries*sizeof(PALETTEENTRY)))
443     _When_(bInbound==0, _Out_writes_bytes_(cEntries*sizeof(PALETTEENTRY))) LPVOID pEntries,
444     _In_ DWORD iFunc,
445     _In_ BOOL bInbound);
446 
447 __kernel_entry
448 W32KAPI
449 BOOL
450 APIENTRY
451 NtGdiComputeXformCoefficients(
452     _In_ HDC hdc);
453 
454 __kernel_entry
455 W32KAPI
456 BOOL
457 APIENTRY
458 NtGdiGetWidthTable(
459     _In_ HDC hdc,
460     _In_ ULONG cSpecial,
461     _In_reads_(cwc) WCHAR *pwc,
462     _In_ ULONG cwc,
463     _Out_writes_(cwc) USHORT *psWidth,
464     _Out_opt_ WIDTHDATA *pwd,
465     _Out_ FLONG *pflInfo);
466 
467 _Success_(return != 0)
468 __kernel_entry
469 W32KAPI
470 INT
471 APIENTRY
472 NtGdiDescribePixelFormat(
473     _In_ HDC hdc,
474     _In_ INT ipfd,
475     _In_ UINT cjpfd,
476     _Out_writes_bytes_(cjpfd) PPIXELFORMATDESCRIPTOR ppfd);
477 
478 __kernel_entry
479 W32KAPI
480 BOOL
481 APIENTRY
482 NtGdiSetPixelFormat(
483     _In_ HDC hdc,
484     _In_ INT ipfd);
485 
486 __kernel_entry
487 W32KAPI
488 BOOL
489 APIENTRY
490 NtGdiSwapBuffers(
491     _In_ HDC hdc);
492 
493 /* Not in MS ntgdi.h */
494 __kernel_entry
495 W32KAPI
496 INT
497 APIENTRY
498 NtGdiSetupPublicCFONT(
499     _In_ HDC hdc,
500     _In_opt_ HFONT hf,
501     _In_ ULONG ulAve);
502 
503 __kernel_entry
504 W32KAPI
505 DWORD
506 APIENTRY
507 NtGdiDxgGenericThunk(
508     _In_ ULONG_PTR ulIndex,
509     _In_ ULONG_PTR ulHandle,
510     _Inout_ SIZE_T *pdwSizeOfPtr1,
511     _Inout_  PVOID pvPtr1,
512     _Inout_ SIZE_T *pdwSizeOfPtr2,
513     _Inout_  PVOID pvPtr2);
514 
515 __kernel_entry
516 W32KAPI
517 DWORD
518 APIENTRY
519 NtGdiDdAddAttachedSurface(
520     _In_ HANDLE hSurface,
521     _In_ HANDLE hSurfaceAttached,
522     _Inout_ PDD_ADDATTACHEDSURFACEDATA puAddAttachedSurfaceData);
523 
524 __kernel_entry
525 W32KAPI
526 BOOL
527 APIENTRY
528 NtGdiDdAttachSurface(
529     _In_ HANDLE hSurfaceFrom,
530     _In_ HANDLE hSurfaceTo);
531 
532 __kernel_entry
533 W32KAPI
534 DWORD
535 APIENTRY
536 NtGdiDdBlt(
537     _In_ HANDLE hSurfaceDest,
538     _In_ HANDLE hSurfaceSrc,
539     _Inout_ PDD_BLTDATA puBltData);
540 
541 __kernel_entry
542 W32KAPI
543 DWORD
544 APIENTRY
545 NtGdiDdCanCreateSurface(
546     _In_ HANDLE hDirectDraw,
547     _Inout_ PDD_CANCREATESURFACEDATA puCanCreateSurfaceData);
548 
549 __kernel_entry
550 W32KAPI
551 DWORD
552 APIENTRY
553 NtGdiDdColorControl(
554     _In_ HANDLE hSurface,
555     _Inout_ PDD_COLORCONTROLDATA puColorControlData);
556 
557 __kernel_entry
558 W32KAPI
559 HANDLE
560 APIENTRY
561 NtGdiDdCreateDirectDrawObject(
562     _In_ HDC hdc);
563 
564 __kernel_entry
565 W32KAPI
566 DWORD
567 APIENTRY
568 NtGdiDdCreateSurface(
569     _In_ HANDLE hDirectDraw,
570     _In_ HANDLE* hSurface,
571     _Inout_ DDSURFACEDESC* puSurfaceDescription,
572     _Inout_ DD_SURFACE_GLOBAL* puSurfaceGlobalData,
573     _Inout_ DD_SURFACE_LOCAL* puSurfaceLocalData,
574     _Inout_ DD_SURFACE_MORE* puSurfaceMoreData,
575     _Inout_ DD_CREATESURFACEDATA* puCreateSurfaceData,
576     _Out_ HANDLE* puhSurface);
577 
578 #ifdef DX_LONGHORN_PRESERVEDC
579 __kernel_entry
580 W32KAPI
581 DWORD
582 APIENTRY
583 NtGdiDdChangeSurfacePointer(
584     _In_ HANDLE hSurface,
585     _In_ PVOID pSurfacePointer);
586 #endif /* DX_LONGHORN_PRESERVEDC */
587 
588 __kernel_entry
589 W32KAPI
590 HANDLE
591 APIENTRY
592 NtGdiDdCreateSurfaceObject(
593     _In_ HANDLE hDirectDrawLocal,
594     _In_ HANDLE hSurface,
595     _In_ PDD_SURFACE_LOCAL puSurfaceLocal,
596     _In_ PDD_SURFACE_MORE puSurfaceMore,
597     _In_ PDD_SURFACE_GLOBAL puSurfaceGlobal,
598     _In_ BOOL bComplete);
599 
600 __kernel_entry
601 W32KAPI
602 BOOL
603 APIENTRY
604 NtGdiDdDeleteSurfaceObject(
605     _In_ HANDLE hSurface);
606 
607 __kernel_entry
608 W32KAPI
609 BOOL
610 APIENTRY
611 NtGdiDdDeleteDirectDrawObject(
612     _In_ HANDLE hDirectDrawLocal);
613 
614 __kernel_entry
615 W32KAPI
616 DWORD
617 APIENTRY
618 NtGdiDdDestroySurface(
619     _In_ HANDLE hSurface,
620     _In_ BOOL bRealDestroy);
621 
622 __kernel_entry
623 W32KAPI
624 DWORD
625 APIENTRY
626 NtGdiDdFlip(
627     _In_ HANDLE hSurfaceCurrent,
628     _In_ HANDLE hSurfaceTarget,
629     _In_ HANDLE hSurfaceCurrentLeft,
630     _In_ HANDLE hSurfaceTargetLeft,
631     _Inout_ PDD_FLIPDATA puFlipData);
632 
633 __kernel_entry
634 W32KAPI
635 DWORD
636 APIENTRY
637 NtGdiDdGetAvailDriverMemory(
638     _In_ HANDLE hDirectDraw,
639     _Inout_ PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData);
640 
641 __kernel_entry
642 W32KAPI
643 DWORD
644 APIENTRY
645 NtGdiDdGetBltStatus(
646     _In_ HANDLE hSurface,
647     _Inout_ PDD_GETBLTSTATUSDATA puGetBltStatusData);
648 
649 __kernel_entry
650 W32KAPI
651 HDC
652 APIENTRY
653 NtGdiDdGetDC(
654     _In_ HANDLE hSurface,
655     _In_ PALETTEENTRY* puColorTable);
656 
657 __kernel_entry
658 W32KAPI
659 DWORD
660 APIENTRY
661 NtGdiDdGetDriverInfo(
662     _In_ HANDLE hDirectDraw,
663     _Inout_ PDD_GETDRIVERINFODATA puGetDriverInfoData);
664 
665 __kernel_entry
666 W32KAPI
667 DWORD
668 APIENTRY
669 NtGdiDdGetFlipStatus(
670     _In_ HANDLE hSurface,
671     _Inout_ PDD_GETFLIPSTATUSDATA puGetFlipStatusData);
672 
673 __kernel_entry
674 W32KAPI
675 DWORD
676 APIENTRY
677 NtGdiDdGetScanLine(
678     _In_ HANDLE hDirectDraw,
679     _Inout_ PDD_GETSCANLINEDATA puGetScanLineData);
680 
681 __kernel_entry
682 W32KAPI
683 DWORD
684 APIENTRY
685 NtGdiDdSetExclusiveMode(
686     _In_ HANDLE hDirectDraw,
687     _Inout_ PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData);
688 
689 __kernel_entry
690 W32KAPI
691 DWORD
692 APIENTRY
693 NtGdiDdFlipToGDISurface(
694     _In_ HANDLE hDirectDraw,
695     _Inout_ PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData);
696 
697 __kernel_entry
698 W32KAPI
699 DWORD
700 APIENTRY
701 NtGdiDdLock(
702     _In_ HANDLE hSurface,
703     _Inout_ PDD_LOCKDATA puLockData,
704     _In_ HDC hdcClip);
705 
706 __kernel_entry
707 W32KAPI
708 BOOL
709 APIENTRY
710 NtGdiDdQueryDirectDrawObject(
711     _In_ HANDLE hDirectDrawLocal,
712     _Out_ PDD_HALINFO pHalInfo,
713     _Out_writes_(3) DWORD* pCallBackFlags,
714     _Out_opt_ LPD3DNTHAL_CALLBACKS puD3dCallbacks,
715     _Out_opt_ LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
716     _Out_opt_ PDD_D3DBUFCALLBACKS puD3dBufferCallbacks,
717     _Out_opt_ LPDDSURFACEDESC puD3dTextureFormats,
718     _Out_ DWORD* puNumHeaps,
719     _Out_opt_ VIDEOMEMORY* puvmList,
720     _Out_ DWORD* puNumFourCC,
721     _Out_opt_ DWORD* puFourCC);
722 
723 __kernel_entry
724 W32KAPI
725 BOOL
726 APIENTRY
727 NtGdiDdReenableDirectDrawObject(
728     _In_ HANDLE hDirectDrawLocal,
729     _Inout_ BOOL* pubNewMode);
730 
731 __kernel_entry
732 W32KAPI
733 BOOL
734 APIENTRY
735 NtGdiDdReleaseDC(
736     _In_ HANDLE hSurface);
737 
738 __kernel_entry
739 W32KAPI
740 BOOL
741 APIENTRY
742 NtGdiDdResetVisrgn(
743     _In_ HANDLE hSurface,
744     _In_ HWND hwnd);
745 
746 __kernel_entry
747 W32KAPI
748 DWORD
749 APIENTRY
750 NtGdiDdSetColorKey(
751     _In_ HANDLE hSurface,
752     _Inout_ PDD_SETCOLORKEYDATA puSetColorKeyData);
753 
754 __kernel_entry
755 W32KAPI
756 DWORD
757 APIENTRY
758 NtGdiDdSetOverlayPosition(
759     _In_ HANDLE hSurfaceSource,
760     _In_ HANDLE hSurfaceDestination,
761     _Inout_ PDD_SETOVERLAYPOSITIONDATA puSetOverlayPositionData);
762 
763 __kernel_entry
764 W32KAPI
765 NTSTATUS
766 APIENTRY
767 NtGdiDdUnattachSurface(
768     _In_ HANDLE hSurface,
769     _In_ HANDLE hSurfaceAttached);
770 
771 __kernel_entry
772 W32KAPI
773 DWORD
774 APIENTRY
775 NtGdiDdUnlock(
776     _In_ HANDLE hSurface,
777     _Inout_ PDD_UNLOCKDATA puUnlockData);
778 
779 __kernel_entry
780 W32KAPI
781 DWORD
782 APIENTRY
783 NtGdiDdUpdateOverlay(
784     _In_ HANDLE hSurfaceDestination,
785     _In_ HANDLE hSurfaceSource,
786     _Inout_ PDD_UPDATEOVERLAYDATA puUpdateOverlayData);
787 
788 __kernel_entry
789 W32KAPI
790 DWORD
791 APIENTRY
792 NtGdiDdWaitForVerticalBlank(
793     _In_ HANDLE hDirectDraw,
794     _Inout_ PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData);
795 
796 __kernel_entry
797 W32KAPI
798 HANDLE
799 APIENTRY
800 NtGdiDdGetDxHandle(
801     _In_opt_ HANDLE hDirectDraw,
802     _In_opt_ HANDLE hSurface,
803     _In_ BOOL bRelease);
804 
805 __kernel_entry
806 W32KAPI
807 BOOL
808 APIENTRY
809 NtGdiDdSetGammaRamp(
810     _In_ HANDLE hDirectDraw,
811     _In_ HDC hdc,
812     _In_reads_bytes_(sizeof(GAMMARAMP)) LPVOID lpGammaRamp);
813 
814 __kernel_entry
815 W32KAPI
816 DWORD
817 APIENTRY
818 NtGdiDdLockD3D(
819     _In_ HANDLE hSurface,
820     _Inout_ PDD_LOCKDATA puLockData);
821 
822 __kernel_entry
823 W32KAPI
824 DWORD
825 APIENTRY
826 NtGdiDdUnlockD3D(
827     _In_ HANDLE hSurface,
828     _Inout_ PDD_UNLOCKDATA puUnlockData);
829 
830 __kernel_entry
831 W32KAPI
832 DWORD
833 APIENTRY
834 NtGdiDdCreateD3DBuffer(
835     _In_ HANDLE hDirectDraw,
836     _Inout_ HANDLE* hSurface,
837     _Inout_ DDSURFACEDESC* puSurfaceDescription,
838     _Inout_ DD_SURFACE_GLOBAL* puSurfaceGlobalData,
839     _Inout_ DD_SURFACE_LOCAL* puSurfaceLocalData,
840     _Inout_ DD_SURFACE_MORE* puSurfaceMoreData,
841     _Inout_ DD_CREATESURFACEDATA* puCreateSurfaceData,
842     _Inout_ HANDLE* puhSurface);
843 
844 __kernel_entry
845 W32KAPI
846 DWORD
847 APIENTRY
848 NtGdiDdCanCreateD3DBuffer(
849     _In_ HANDLE hDirectDraw,
850     _Inout_ PDD_CANCREATESURFACEDATA puCanCreateSurfaceData);
851 
852 __kernel_entry
853 W32KAPI
854 DWORD
855 APIENTRY
856 NtGdiDdDestroyD3DBuffer(
857     _In_ HANDLE hSurface);
858 
859 __kernel_entry
860 W32KAPI
861 BOOL
862 APIENTRY
863 NtGdiD3dContextCreate(
864     _In_ HANDLE hDirectDrawLocal,
865     _In_ HANDLE hSurfColor,
866     _In_ HANDLE hSurfZ,
867     _Inout_ D3DNTHAL_CONTEXTCREATEI *pdcci);
868 
869 __kernel_entry
870 W32KAPI
871 DWORD
872 APIENTRY
873 NtGdiD3dContextDestroy(
874     _In_ LPD3DNTHAL_CONTEXTDESTROYDATA pdcdd);
875 
876 __kernel_entry
877 W32KAPI
878 DWORD
879 APIENTRY
880 NtGdiD3dContextDestroyAll(
881     _Out_ LPD3DNTHAL_CONTEXTDESTROYALLDATA pdcdad);
882 
883 __kernel_entry
884 W32KAPI
885 DWORD
886 APIENTRY
887 NtGdiD3dValidateTextureStageState(
888     _Inout_ LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData);
889 
890 __kernel_entry
891 W32KAPI
892 DWORD
893 APIENTRY
894 NtGdiD3dDrawPrimitives2(
895     _In_ HANDLE hCmdBuf,
896     _In_ HANDLE hVBuf,
897     _Inout_ LPD3DNTHAL_DRAWPRIMITIVES2DATA pded,
898     _Inout_ FLATPTR* pfpVidMemCmd,
899     _Inout_ DWORD* pdwSizeCmd,
900     _Inout_ FLATPTR* pfpVidMemVtx,
901     _Inout_ DWORD* pdwSizeVtx);
902 
903 __kernel_entry
904 W32KAPI
905 DWORD
906 APIENTRY
907 NtGdiDdGetDriverState(
908     _Inout_ PDD_GETDRIVERSTATEDATA pdata);
909 
910 __kernel_entry
911 W32KAPI
912 DWORD
913 APIENTRY
914 NtGdiDdCreateSurfaceEx(
915     _In_ HANDLE hDirectDraw,
916     _In_ HANDLE hSurface,
917     _In_ DWORD dwSurfaceHandle);
918 
919 __kernel_entry
920 W32KAPI
921 DWORD
922 APIENTRY
923 NtGdiDdDDICreateDCFromMemory(
924     _Inout_ D3DKMT_CREATEDCFROMMEMORY *desc);
925 
926 __kernel_entry
927 W32KAPI
928 DWORD
929 APIENTRY
930 NtGdiDdDDIDestroyDCFromMemory(
931     _In_ CONST D3DKMT_DESTROYDCFROMMEMORY *desc);
932 
933 __kernel_entry
934 W32KAPI
935 DWORD
936 APIENTRY
937 NtGdiDvpCanCreateVideoPort(
938     _In_ HANDLE hDirectDraw,
939     _Inout_ PDD_CANCREATEVPORTDATA puCanCreateVPortData);
940 
941 __kernel_entry
942 W32KAPI
943 DWORD
944 APIENTRY
945 NtGdiDvpColorControl(
946     _In_ HANDLE hVideoPort,
947     _Inout_ PDD_VPORTCOLORDATA puVPortColorData);
948 
949 __kernel_entry
950 W32KAPI
951 HANDLE
952 APIENTRY
953 NtGdiDvpCreateVideoPort(
954     _In_ HANDLE hDirectDraw,
955     _Inout_ PDD_CREATEVPORTDATA puCreateVPortData);
956 
957 __kernel_entry
958 W32KAPI
959 DWORD
960 APIENTRY
961 NtGdiDvpDestroyVideoPort(
962     _In_ HANDLE hVideoPort,
963     _Inout_ PDD_DESTROYVPORTDATA puDestroyVPortData);
964 
965 __kernel_entry
966 W32KAPI
967 DWORD
968 APIENTRY
969 NtGdiDvpFlipVideoPort(
970     _In_ HANDLE hVideoPort,
971     _In_ HANDLE hDDSurfaceCurrent,
972     _In_ HANDLE hDDSurfaceTarget,
973     _Inout_ PDD_FLIPVPORTDATA puFlipVPortData);
974 
975 __kernel_entry
976 W32KAPI
977 DWORD
978 APIENTRY
979 NtGdiDvpGetVideoPortBandwidth(
980     _In_ HANDLE hVideoPort,
981     _Inout_ PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData);
982 
983 __kernel_entry
984 W32KAPI
985 DWORD
986 APIENTRY
987 NtGdiDvpGetVideoPortField(
988     _In_ HANDLE hVideoPort,
989     _Inout_ PDD_GETVPORTFIELDDATA puGetVPortFieldData);
990 
991 __kernel_entry
992 W32KAPI
993 DWORD
994 APIENTRY
995 NtGdiDvpGetVideoPortFlipStatus(
996     _In_ HANDLE hDirectDraw,
997     _Inout_ PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData);
998 
999 __kernel_entry
1000 W32KAPI
1001 DWORD
1002 APIENTRY
1003 NtGdiDvpGetVideoPortInputFormats(
1004     _In_ HANDLE hVideoPort,
1005     _Inout_ PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData);
1006 
1007 __kernel_entry
1008 W32KAPI
1009 DWORD
1010 APIENTRY
1011 NtGdiDvpGetVideoPortLine(
1012     _In_ HANDLE hVideoPort,
1013     _Inout_ PDD_GETVPORTLINEDATA puGetVPortLineData);
1014 
1015 __kernel_entry
1016 W32KAPI
1017 DWORD
1018 APIENTRY
1019 NtGdiDvpGetVideoPortOutputFormats(
1020     _In_ HANDLE hVideoPort,
1021     _Inout_ PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData);
1022 
1023 __kernel_entry
1024 W32KAPI
1025 DWORD
1026 APIENTRY
1027 NtGdiDvpGetVideoPortConnectInfo(
1028     _In_ HANDLE hDirectDraw,
1029     _Inout_ PDD_GETVPORTCONNECTDATA puGetVPortConnectData);
1030 
1031 __kernel_entry
1032 W32KAPI
1033 DWORD
1034 APIENTRY
1035 NtGdiDvpGetVideoSignalStatus(
1036     _In_ HANDLE hVideoPort,
1037     _Inout_ PDD_GETVPORTSIGNALDATA puGetVPortSignalData);
1038 
1039 __kernel_entry
1040 W32KAPI
1041 DWORD
1042 APIENTRY
1043 NtGdiDvpUpdateVideoPort(
1044     _In_ HANDLE hVideoPort,
1045     _In_ HANDLE* phSurfaceVideo,
1046     _In_ HANDLE* phSurfaceVbi,
1047     _Inout_ PDD_UPDATEVPORTDATA puUpdateVPortData);
1048 
1049 __kernel_entry
1050 W32KAPI
1051 DWORD
1052 APIENTRY
1053 NtGdiDvpWaitForVideoPortSync(
1054     _In_ HANDLE hVideoPort,
1055     _Inout_ PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData);
1056 
1057 __kernel_entry
1058 W32KAPI
1059 DWORD
1060 APIENTRY
1061 NtGdiDvpAcquireNotification(
1062     _In_ HANDLE hVideoPort,
1063     _Inout_ HANDLE* hEvent,
1064     _In_ LPDDVIDEOPORTNOTIFY pNotify);
1065 
1066 __kernel_entry
1067 W32KAPI
1068 DWORD
1069 APIENTRY
1070 NtGdiDvpReleaseNotification(
1071     _In_ HANDLE hVideoPort,
1072     _In_ HANDLE hEvent);
1073 
1074 __kernel_entry
1075 W32KAPI
1076 DWORD
1077 APIENTRY
1078 NtGdiDdGetMoCompGuids(
1079     _In_ HANDLE hDirectDraw,
1080     _Inout_ PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData);
1081 
1082 __kernel_entry
1083 W32KAPI
1084 DWORD
1085 APIENTRY
1086 NtGdiDdGetMoCompFormats(
1087     _In_ HANDLE hDirectDraw,
1088     _Inout_ PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData);
1089 
1090 __kernel_entry
1091 W32KAPI
1092 DWORD
1093 APIENTRY
1094 NtGdiDdGetMoCompBuffInfo(
1095     _In_ HANDLE hDirectDraw,
1096     _Inout_ PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData);
1097 
1098 __kernel_entry
1099 W32KAPI
1100 DWORD
1101 APIENTRY
1102 NtGdiDdGetInternalMoCompInfo(
1103     _In_ HANDLE hDirectDraw,
1104     _Inout_ PDD_GETINTERNALMOCOMPDATA puGetInternalData);
1105 
1106 __kernel_entry
1107 W32KAPI
1108 HANDLE
1109 APIENTRY
1110 NtGdiDdCreateMoComp(
1111     _In_ HANDLE hDirectDraw,
1112     _Inout_ PDD_CREATEMOCOMPDATA puCreateMoCompData);
1113 
1114 __kernel_entry
1115 W32KAPI
1116 DWORD
1117 APIENTRY
1118 NtGdiDdDestroyMoComp(
1119     _In_ HANDLE hMoComp,
1120     _Inout_ PDD_DESTROYMOCOMPDATA puDestroyMoCompData);
1121 
1122 __kernel_entry
1123 W32KAPI
1124 DWORD
1125 APIENTRY
1126 NtGdiDdBeginMoCompFrame(
1127     _In_ HANDLE hMoComp,
1128     _Inout_ PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData);
1129 
1130 __kernel_entry
1131 W32KAPI
1132 DWORD
1133 APIENTRY
1134 NtGdiDdEndMoCompFrame(
1135     _In_ HANDLE hMoComp,
1136     _Inout_ PDD_ENDMOCOMPFRAMEDATA puEndFrameData);
1137 
1138 __kernel_entry
1139 W32KAPI
1140 DWORD
1141 APIENTRY
1142 NtGdiDdRenderMoComp(
1143     _In_ HANDLE hMoComp,
1144     _Inout_ PDD_RENDERMOCOMPDATA puRenderMoCompData);
1145 
1146 __kernel_entry
1147 W32KAPI
1148 DWORD
1149 APIENTRY
1150 NtGdiDdQueryMoCompStatus(
1151     _In_ HANDLE hMoComp,
1152     _Inout_ PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData);
1153 
1154 __kernel_entry
1155 W32KAPI
1156 DWORD
1157 APIENTRY
1158 NtGdiDdAlphaBlt(
1159     _In_ HANDLE hSurfaceDest,
1160     _In_opt_ HANDLE hSurfaceSrc,
1161     _Inout_ PDD_BLTDATA puBltData);
1162 
1163 __kernel_entry
1164 W32KAPI
1165 BOOL
1166 APIENTRY
1167 NtGdiAlphaBlend(
1168     _In_ HDC hdcDst,
1169     _In_ LONG DstX,
1170     _In_ LONG DstY,
1171     _In_ LONG DstCx,
1172     _In_ LONG DstCy,
1173     _In_ HDC hdcSrc,
1174     _In_ LONG SrcX,
1175     _In_ LONG SrcY,
1176     _In_ LONG SrcCx,
1177     _In_ LONG SrcCy,
1178     _In_ BLENDFUNCTION BlendFunction,
1179     _In_ HANDLE hcmXform);
1180 
1181 __kernel_entry
1182 W32KAPI
1183 BOOL
1184 APIENTRY
1185 NtGdiGradientFill(
1186     _In_ HDC hdc,
1187     _In_ PTRIVERTEX pVertex,
1188     _In_ ULONG nVertex,
1189     _In_ PVOID pMesh,
1190     _In_ ULONG nMesh,
1191     _In_ ULONG ulMode);
1192 
1193 __kernel_entry
1194 W32KAPI
1195 BOOL
1196 APIENTRY
1197 NtGdiSetIcmMode(
1198     _In_ HDC hdc,
1199     _In_ ULONG nCommand,
1200     _In_ ULONG ulMode);
1201 
1202 __kernel_entry
1203 W32KAPI
1204 HANDLE
1205 APIENTRY
1206 NtGdiCreateColorSpace(
1207     _In_ PLOGCOLORSPACEEXW pLogColorSpace);
1208 
1209 __kernel_entry
1210 W32KAPI
1211 BOOL
1212 APIENTRY
1213 NtGdiDeleteColorSpace(
1214     _In_ HANDLE hColorSpace);
1215 
1216 __kernel_entry
1217 W32KAPI
1218 BOOL
1219 APIENTRY
1220 NtGdiSetColorSpace(
1221     _In_ HDC hdc,
1222     _In_ HCOLORSPACE hColorSpace);
1223 
1224 __kernel_entry
1225 W32KAPI
1226 HANDLE
1227 APIENTRY
1228 NtGdiCreateColorTransform(
1229     _In_ HDC hdc,
1230     _In_ LPLOGCOLORSPACEW pLogColorSpaceW,
1231     _In_reads_bytes_opt_(cjSrcProfile) PVOID pvSrcProfile,
1232     _In_ ULONG cjSrcProfile,
1233     _In_reads_bytes_opt_(cjDestProfile) PVOID pvDestProfile,
1234     _In_ ULONG cjDestProfile,
1235     _In_reads_bytes_opt_(cjTargetProfile) PVOID pvTargetProfile,
1236     _In_ ULONG cjTargetProfile);
1237 
1238 __kernel_entry
1239 W32KAPI
1240 BOOL
1241 APIENTRY
1242 NtGdiDeleteColorTransform(
1243     _In_ HDC hdc,
1244     _In_ HANDLE hColorTransform);
1245 
1246 __kernel_entry
1247 W32KAPI
1248 BOOL
1249 APIENTRY
1250 NtGdiCheckBitmapBits(
1251     _In_ HDC hdc,
1252     _In_ HANDLE hColorTransform,
1253     _In_reads_bytes_(dwStride * dwHeight) PVOID pvBits,
1254     _In_ ULONG bmFormat,
1255     _In_ DWORD dwWidth,
1256     _In_ DWORD dwHeight,
1257     _In_ DWORD dwStride,
1258     _Out_writes_bytes_(dwWidth * dwHeight) PBYTE paResults);
1259 
1260 __kernel_entry
1261 W32KAPI
1262 ULONG
1263 APIENTRY
1264 NtGdiColorCorrectPalette(
1265     _In_ HDC hdc,
1266     _In_ HPALETTE hpal,
1267     _In_ ULONG uFirstEntry,
1268     _In_ ULONG cPalEntries,
1269     _Inout_updates_(cPalEntries) PALETTEENTRY *ppalEntry,
1270     _In_ ULONG uCommand);
1271 
1272 __kernel_entry
1273 W32KAPI
1274 ULONG_PTR
1275 APIENTRY
1276 NtGdiGetColorSpaceforBitmap(
1277     _In_ HBITMAP hsurf);
1278 
1279 _Success_(return!=FALSE)
1280 __kernel_entry
1281 W32KAPI
1282 BOOL
1283 APIENTRY
1284 NtGdiGetDeviceGammaRamp(
1285     _In_ HDC hdc,
1286     _Out_writes_bytes_(sizeof(GAMMARAMP)) LPVOID lpGammaRamp);
1287 
1288 __kernel_entry
1289 W32KAPI
1290 BOOL
1291 APIENTRY
1292 NtGdiSetDeviceGammaRamp(
1293     _In_ HDC hdc,
1294     _In_reads_bytes_(sizeof(GAMMARAMP)) LPVOID lpGammaRamp);
1295 
1296 __kernel_entry
1297 W32KAPI
1298 BOOL
1299 APIENTRY
1300 NtGdiIcmBrushInfo(
1301     _In_ HDC hdc,
1302     _In_ HBRUSH hbrush,
1303     _Inout_updates_bytes_(sizeof(BITMAPINFO) + ((/*MAX_COLORTABLE*/256 - 1) * sizeof(RGBQUAD))) PBITMAPINFO pbmiDIB,
1304     _Inout_updates_bytes_(*pulBits) PVOID pvBits,
1305     _Inout_ ULONG *pulBits,
1306     _Out_opt_ DWORD *piUsage,
1307     _Out_opt_ BOOL *pbAlreadyTran,
1308     _In_ ULONG Command);
1309 
1310 __kernel_entry
1311 W32KAPI
1312 NTSTATUS
1313 APIENTRY
1314 NtGdiFlush(
1315     VOID);
1316 
1317 __kernel_entry
1318 W32KAPI
1319 HDC
1320 APIENTRY
1321 NtGdiCreateMetafileDC(
1322     _In_ HDC hdc);
1323 
1324 __kernel_entry
1325 W32KAPI
1326 BOOL
1327 APIENTRY
1328 NtGdiMakeInfoDC(
1329     _In_ HDC hdc,
1330     _In_ BOOL bSet);
1331 
1332 __kernel_entry
1333 W32KAPI
1334 HANDLE
1335 APIENTRY
1336 NtGdiCreateClientObj(
1337     _In_ ULONG ulType);
1338 
1339 __kernel_entry
1340 W32KAPI
1341 BOOL
1342 APIENTRY
1343 NtGdiDeleteClientObj(
1344     _In_ HANDLE h);
1345 
1346 __kernel_entry
1347 W32KAPI
1348 LONG
1349 APIENTRY
1350 NtGdiGetBitmapBits(
1351     _In_ HBITMAP hbm,
1352     _In_ ULONG cjMax,
1353     _Out_writes_bytes_opt_(cjMax) PBYTE pjOut);
1354 
1355 __kernel_entry
1356 W32KAPI
1357 BOOL
1358 APIENTRY
1359 NtGdiDeleteObjectApp(
1360     _In_ HANDLE hobj);
1361 
1362 __kernel_entry
1363 W32KAPI
1364 INT
1365 APIENTRY
1366 NtGdiGetPath(
1367     _In_ HDC hdc,
1368     _Out_writes_opt_(cptBuf) LPPOINT pptlBuf,
1369     _Out_writes_opt_(cptBuf) LPBYTE pjTypes,
1370     _In_ INT cptBuf);
1371 
1372 __kernel_entry
1373 W32KAPI
1374 HDC
1375 APIENTRY
1376 NtGdiCreateCompatibleDC(
1377     _In_opt_ HDC hdc);
1378 
1379 __kernel_entry
1380 W32KAPI
1381 HBITMAP
1382 APIENTRY
1383 NtGdiCreateDIBitmapInternal(
1384     _In_ HDC hdc,
1385     _In_ INT cx,
1386     _In_ INT cy,
1387     _In_ DWORD fInit,
1388     _In_reads_bytes_opt_(cjMaxBits) LPBYTE pjInit,
1389     _In_reads_bytes_opt_(cjMaxInitInfo) LPBITMAPINFO pbmi,
1390     _In_ DWORD iUsage,
1391     _In_ UINT cjMaxInitInfo,
1392     _In_ UINT cjMaxBits,
1393     _In_ FLONG f,
1394     _In_ HANDLE hcmXform);
1395 
1396 __kernel_entry
1397 W32KAPI
1398 HBITMAP
1399 APIENTRY
1400 NtGdiCreateDIBSection(
1401     _In_ HDC hdc,
1402     _In_opt_ HANDLE hSectionApp,
1403     _In_ DWORD dwOffset,
1404     _In_reads_bytes_opt_(cjHeader) LPBITMAPINFO pbmi,
1405     _In_ DWORD iUsage,
1406     _In_ UINT cjHeader,
1407     _In_ FLONG fl,
1408     _In_ ULONG_PTR dwColorSpace,
1409     _Outptr_ PVOID *ppvBits);
1410 
1411 __kernel_entry
1412 W32KAPI
1413 HBRUSH
1414 APIENTRY
1415 NtGdiCreateSolidBrush(
1416     _In_ COLORREF cr,
1417     _In_opt_ HBRUSH hbr);
1418 
1419 __kernel_entry
1420 W32KAPI
1421 HBRUSH
1422 APIENTRY
1423 NtGdiCreateDIBBrush(
1424     _In_reads_bytes_(cj) PVOID pv,
1425     _In_ FLONG fl,
1426     _In_ UINT  cj,
1427     _In_ BOOL  b8X8,
1428     _In_ BOOL bPen,
1429     _In_ PVOID pClient);
1430 
1431 __kernel_entry
1432 W32KAPI
1433 HBRUSH
1434 APIENTRY
1435 NtGdiCreatePatternBrushInternal(
1436     _In_ HBITMAP hbm,
1437     _In_ BOOL bPen,
1438     _In_ BOOL b8X8);
1439 
1440 __kernel_entry
1441 W32KAPI
1442 HBRUSH
1443 APIENTRY
1444 NtGdiCreateHatchBrushInternal(
1445     _In_ ULONG ulStyle,
1446     _In_ COLORREF clrr,
1447     _In_ BOOL bPen);
1448 
1449 __kernel_entry
1450 W32KAPI
1451 HPEN
1452 APIENTRY
1453 NtGdiExtCreatePen(
1454     _In_ ULONG flPenStyle,
1455     _In_ ULONG ulWidth,
1456     _In_ ULONG iBrushStyle,
1457     _In_ ULONG ulColor,
1458     _In_ ULONG_PTR lClientHatch,
1459     _In_ ULONG_PTR lHatch,
1460     _In_ ULONG cstyle,
1461     _In_reads_opt_(cstyle) PULONG pulStyle,
1462     _In_ ULONG cjDIB,
1463     _In_ BOOL bOldStylePen,
1464     _In_opt_ HBRUSH hbrush);
1465 
1466 __kernel_entry
1467 W32KAPI
1468 HRGN
1469 APIENTRY
1470 NtGdiCreateEllipticRgn(
1471     _In_ INT xLeft,
1472     _In_ INT yTop,
1473     _In_ INT xRight,
1474     _In_ INT yBottom);
1475 
1476 __kernel_entry
1477 W32KAPI
1478 HRGN
1479 APIENTRY
1480 NtGdiCreateRoundRectRgn(
1481     _In_ INT xLeft,
1482     _In_ INT yTop,
1483     _In_ INT xRight,
1484     _In_ INT yBottom,
1485     _In_ INT xWidth,
1486     _In_ INT yHeight);
1487 
1488 __kernel_entry
1489 W32KAPI
1490 HANDLE
1491 APIENTRY
1492 NtGdiCreateServerMetaFile(
1493     _In_ DWORD iType,
1494     _In_ ULONG cjData,
1495     _In_reads_bytes_(cjData) LPBYTE pjData,
1496     _In_ DWORD mm,
1497     _In_ DWORD xExt,
1498     _In_ DWORD yExt);
1499 
1500 __kernel_entry
1501 W32KAPI
1502 HRGN
1503 APIENTRY
1504 NtGdiExtCreateRegion(
1505     _In_opt_ LPXFORM px,
1506     _In_ DWORD cj,
1507     _In_reads_bytes_(cj) LPRGNDATA prgndata);
1508 
1509 __kernel_entry
1510 W32KAPI
1511 ULONG
1512 APIENTRY
1513 NtGdiMakeFontDir(
1514     _In_ FLONG flEmbed,
1515     _Out_writes_bytes_(cjFontDir) PBYTE pjFontDir,
1516     _In_ UINT cjFontDir,
1517     _In_reads_bytes_(cjPathname) LPWSTR pwszPathname,
1518     _In_ UINT cjPathname);
1519 
1520 __kernel_entry
1521 W32KAPI
1522 BOOL
1523 APIENTRY
1524 NtGdiPolyDraw(
1525     _In_ HDC hdc,
1526     _In_reads_(cpt) LPPOINT ppt,
1527     _In_reads_(cpt) LPBYTE pjAttr,
1528     _In_ ULONG cpt);
1529 
1530 __kernel_entry
1531 W32KAPI
1532 BOOL
1533 APIENTRY
1534 NtGdiPolyTextOutW(
1535     _In_ HDC hdc,
1536     _In_reads_(cStr) POLYTEXTW *pptw,
1537     _In_ UINT cStr,
1538     _In_ DWORD dwCodePage);
1539 
1540 __kernel_entry
1541 W32KAPI
1542 ULONG
1543 APIENTRY
1544 NtGdiGetServerMetaFileBits(
1545     _In_ HANDLE hmo,
1546     _In_ ULONG cjData,
1547     _Out_writes_bytes_opt_(cjData) LPBYTE pjData,
1548     _Out_ PDWORD piType,
1549     _Out_ PDWORD pmm,
1550     _Out_ PDWORD pxExt,
1551     _Out_ PDWORD pyExt);
1552 
1553 __kernel_entry
1554 W32KAPI
1555 BOOL
1556 APIENTRY
1557 NtGdiEqualRgn(
1558     _In_ HRGN hrgn1,
1559     _In_ HRGN hrgn2);
1560 
1561 _Must_inspect_result_
1562 _Success_(return!=FALSE)
1563 __kernel_entry
1564 W32KAPI
1565 BOOL
1566 APIENTRY
1567 NtGdiGetBitmapDimension(
1568     _In_ HBITMAP hbm,
1569     _Out_ LPSIZE psize);
1570 
1571 __kernel_entry
1572 W32KAPI
1573 UINT
1574 APIENTRY
1575 NtGdiGetNearestPaletteIndex(
1576     _In_ HPALETTE hpal,
1577     _In_ COLORREF crColor);
1578 
1579 __kernel_entry
1580 W32KAPI
1581 BOOL
1582 APIENTRY
1583 NtGdiPtVisible(
1584     _In_ HDC hdc,
1585     _In_ INT x,
1586     _In_ INT y);
1587 
1588 __kernel_entry
1589 W32KAPI
1590 BOOL
1591 APIENTRY
1592 NtGdiRectVisible(
1593     _In_ HDC hdc,
1594     _In_ LPRECT prc);
1595 
1596 __kernel_entry
1597 W32KAPI
1598 BOOL
1599 APIENTRY
1600 NtGdiRemoveFontResourceW(
1601     _In_reads_(cwc) WCHAR *pwszFiles,
1602     _In_ ULONG cwc,
1603     _In_ ULONG cFiles,
1604     _In_ ULONG fl,
1605     _In_ DWORD dwPidTid,
1606     _In_opt_ DESIGNVECTOR *pdv);
1607 
1608 __kernel_entry
1609 W32KAPI
1610 BOOL
1611 APIENTRY
1612 NtGdiResizePalette(
1613     _In_ HPALETTE hpal,
1614     _In_ UINT cEntry);
1615 
1616 __kernel_entry
1617 W32KAPI
1618 BOOL
1619 APIENTRY
1620 NtGdiSetBitmapDimension(
1621     _In_ HBITMAP hbm,
1622     _In_ INT cx,
1623     _In_ INT cy,
1624     _In_opt_ LPSIZE psizeOut);
1625 
1626 __kernel_entry
1627 W32KAPI
1628 INT
1629 APIENTRY
1630 NtGdiOffsetClipRgn(
1631     _In_ HDC hdc,
1632     _In_ INT x,
1633     _In_ INT y);
1634 
1635 __kernel_entry
1636 W32KAPI
1637 INT
1638 APIENTRY
1639 NtGdiSetMetaRgn(
1640     _In_ HDC hdc);
1641 
1642 __kernel_entry
1643 W32KAPI
1644 BOOL
1645 APIENTRY
1646 NtGdiSetTextJustification(
1647     _In_ HDC hdc,
1648     _In_ INT lBreakExtra,
1649     _In_ INT cBreak);
1650 
1651 _Success_(return!=ERROR)
1652 __kernel_entry
1653 W32KAPI
1654 INT
1655 APIENTRY
1656 NtGdiGetAppClipBox(
1657     _In_ HDC hdc,
1658     _Out_ LPRECT prc);
1659 
1660 __kernel_entry
1661 W32KAPI
1662 BOOL
1663 APIENTRY
1664 NtGdiGetTextExtentExW(
1665     _In_ HDC hdc,
1666     _In_reads_opt_(cwc) LPWSTR pwsz,
1667     _In_ ULONG cwc,
1668     _In_ ULONG dxMax,
1669     _Out_opt_ ULONG *pcCh,
1670     _Out_writes_to_opt_(cwc, *pcCh) PULONG pdxOut,
1671     _Out_ LPSIZE psize,
1672     _In_ FLONG fl);
1673 
1674 __kernel_entry
1675 W32KAPI
1676 BOOL
1677 APIENTRY
1678 NtGdiGetCharABCWidthsW(
1679     _In_ HDC hdc,
1680     _In_ UINT wchFirst,
1681     _In_ ULONG cwch,
1682     _In_reads_opt_(cwch) PWCHAR pwch,
1683     _In_ FLONG fl,
1684     _Out_writes_bytes_(cwch * sizeof(ABC)) PVOID pvBuf);
1685 
1686 __kernel_entry
1687 W32KAPI
1688 DWORD
1689 APIENTRY
1690 NtGdiGetCharacterPlacementW(
1691     _In_ HDC hdc,
1692     _In_reads_z_(nCount) LPWSTR pwsz,
1693     _In_ INT nCount,
1694     _In_ INT nMaxExtent,
1695     _Inout_ LPGCP_RESULTSW pgcpw,
1696     _In_ DWORD dwFlags);
1697 
1698 __kernel_entry
1699 W32KAPI
1700 BOOL
1701 APIENTRY
1702 NtGdiAngleArc(
1703     _In_ HDC hdc,
1704     _In_ INT x,
1705     _In_ INT y,
1706     _In_ DWORD dwRadius,
1707     _In_ DWORD dwStartAngle,
1708     _In_ DWORD dwSweepAngle);
1709 
1710 __kernel_entry
1711 W32KAPI
1712 BOOL
1713 APIENTRY
1714 NtGdiBeginPath(
1715     _In_ HDC hdc);
1716 
1717 __kernel_entry
1718 W32KAPI
1719 BOOL
1720 APIENTRY
1721 NtGdiSelectClipPath(
1722     _In_ HDC hdc,
1723     _In_ INT iMode);
1724 
1725 __kernel_entry
1726 W32KAPI
1727 BOOL
1728 APIENTRY
1729 NtGdiCloseFigure(
1730     _In_ HDC hdc);
1731 
1732 __kernel_entry
1733 W32KAPI
1734 BOOL
1735 APIENTRY
1736 NtGdiEndPath(
1737     _In_ HDC hdc);
1738 
1739 __kernel_entry
1740 W32KAPI
1741 BOOL
1742 APIENTRY
1743 NtGdiAbortPath(
1744     _In_ HDC hdc);
1745 
1746 __kernel_entry
1747 W32KAPI
1748 BOOL
1749 APIENTRY
1750 NtGdiFillPath(
1751     _In_ HDC hdc);
1752 
1753 __kernel_entry
1754 W32KAPI
1755 BOOL
1756 APIENTRY
1757 NtGdiStrokeAndFillPath(
1758     _In_ HDC hdc);
1759 
1760 __kernel_entry
1761 W32KAPI
1762 BOOL
1763 APIENTRY
1764 NtGdiStrokePath(
1765     _In_ HDC hdc);
1766 
1767 __kernel_entry
1768 W32KAPI
1769 BOOL
1770 APIENTRY
1771 NtGdiWidenPath(
1772     _In_ HDC hdc);
1773 
1774 __kernel_entry
1775 W32KAPI
1776 BOOL
1777 APIENTRY
1778 NtGdiFlattenPath(
1779     _In_ HDC hdc);
1780 
1781 __kernel_entry
1782 W32KAPI
1783 HRGN
1784 APIENTRY
1785 NtGdiPathToRegion(
1786     _In_ HDC hdc);
1787 
1788 __kernel_entry
1789 W32KAPI
1790 BOOL
1791 APIENTRY
1792 NtGdiSetMiterLimit(
1793     _In_ HDC hdc,
1794     _In_ DWORD dwNew,
1795     _Inout_opt_ PDWORD pdwOut);
1796 
1797 __kernel_entry
1798 W32KAPI
1799 BOOL
1800 APIENTRY
1801 NtGdiSetFontXform(
1802     _In_ HDC hdc,
1803     _In_ DWORD dwxScale,
1804     _In_ DWORD dwyScale);
1805 
1806 _Success_(return != FALSE)
1807 __kernel_entry
1808 W32KAPI
1809 BOOL
1810 APIENTRY
1811 NtGdiGetMiterLimit(
1812     _In_ HDC hdc,
1813     _Out_ PDWORD pdwOut);
1814 
1815 __kernel_entry
1816 W32KAPI
1817 BOOL
1818 APIENTRY
1819 NtGdiEllipse(
1820     _In_ HDC hdc,
1821     _In_ INT xLeft,
1822     _In_ INT yTop,
1823     _In_ INT xRight,
1824     _In_ INT yBottom);
1825 
1826 __kernel_entry
1827 W32KAPI
1828 BOOL
1829 APIENTRY
1830 NtGdiRectangle(
1831     _In_ HDC hdc,
1832     _In_ INT xLeft,
1833     _In_ INT yTop,
1834     _In_ INT xRight,
1835     _In_ INT yBottom);
1836 
1837 __kernel_entry
1838 W32KAPI
1839 BOOL
1840 APIENTRY
1841 NtGdiRoundRect(
1842     _In_ HDC hdc,
1843     _In_ INT x1,
1844     _In_ INT y1,
1845     _In_ INT x2,
1846     _In_ INT y2,
1847     _In_ INT x3,
1848     _In_ INT y3);
1849 
1850 __kernel_entry
1851 W32KAPI
1852 BOOL
1853 APIENTRY
1854 NtGdiPlgBlt(
1855     _In_ HDC hdcTrg,
1856     _In_reads_(3) LPPOINT pptlTrg,
1857     _In_ HDC hdcSrc,
1858     _In_ INT xSrc,
1859     _In_ INT ySrc,
1860     _In_ INT cxSrc,
1861     _In_ INT cySrc,
1862     _In_opt_ HBITMAP hbmMask,
1863     _In_ INT xMask,
1864     _In_ INT yMask,
1865     _In_ DWORD crBackColor);
1866 
1867 __kernel_entry
1868 W32KAPI
1869 BOOL
1870 APIENTRY
1871 NtGdiMaskBlt(
1872     _In_ HDC hdc,
1873     _In_ INT xDst,
1874     _In_ INT yDst,
1875     _In_ INT cx,
1876     _In_ INT cy,
1877     _In_ HDC hdcSrc,
1878     _In_ INT xSrc,
1879     _In_ INT ySrc,
1880     _In_opt_ HBITMAP hbmMask,
1881     _In_ INT xMask,
1882     _In_ INT yMask,
1883     _In_ DWORD dwRop4,
1884     _In_ DWORD crBackColor);
1885 
1886 __kernel_entry
1887 W32KAPI
1888 BOOL
1889 APIENTRY
1890 NtGdiExtFloodFill(
1891     _In_ HDC hdc,
1892     _In_ INT x,
1893     _In_ INT y,
1894     _In_ COLORREF crColor,
1895     _In_ UINT iFillType);
1896 
1897 __kernel_entry
1898 W32KAPI
1899 BOOL
1900 APIENTRY
1901 NtGdiFillRgn(
1902     _In_ HDC hdc,
1903     _In_ HRGN hrgn,
1904     _In_ HBRUSH hbrush);
1905 
1906 __kernel_entry
1907 W32KAPI
1908 BOOL
1909 APIENTRY
1910 NtGdiFrameRgn(
1911     _In_ HDC hdc,
1912     _In_ HRGN hrgn,
1913     _In_ HBRUSH hbrush,
1914     _In_ INT xWidth,
1915     _In_ INT yHeight);
1916 
1917 __kernel_entry
1918 W32KAPI
1919 COLORREF
1920 APIENTRY
1921 NtGdiSetPixel(
1922     _In_ HDC hdcDst,
1923     _In_ INT x,
1924     _In_ INT y,
1925     _In_ COLORREF crColor);
1926 
1927 __kernel_entry
1928 W32KAPI
1929 DWORD
1930 APIENTRY
1931 NtGdiGetPixel(
1932     _In_ HDC hdc,
1933     _In_ INT x,
1934     _In_ INT y);
1935 
1936 __kernel_entry
1937 W32KAPI
1938 BOOL
1939 APIENTRY
1940 NtGdiStartPage(
1941     _In_ HDC hdc);
1942 
1943 __kernel_entry
1944 W32KAPI
1945 BOOL
1946 APIENTRY
1947 NtGdiEndPage(
1948     _In_ HDC hdc);
1949 
1950 __kernel_entry
1951 W32KAPI
1952 INT
1953 APIENTRY
1954 NtGdiStartDoc(
1955     _In_ HDC hdc,
1956     _In_ DOCINFOW *pdi,
1957     _Out_ BOOL *pbBanding,
1958     _In_ INT iJob);
1959 
1960 __kernel_entry
1961 W32KAPI
1962 BOOL
1963 APIENTRY
1964 NtGdiEndDoc(
1965     _In_ HDC hdc);
1966 
1967 __kernel_entry
1968 W32KAPI
1969 BOOL
1970 APIENTRY
1971 NtGdiAbortDoc(
1972     _In_ HDC hdc);
1973 
1974 __kernel_entry
1975 W32KAPI
1976 BOOL
1977 APIENTRY
1978 NtGdiUpdateColors(
1979     _In_ HDC hdc);
1980 
1981 __kernel_entry
1982 W32KAPI
1983 BOOL
1984 APIENTRY
1985 NtGdiGetCharWidthW(
1986     _In_ HDC hdc,
1987     _In_ UINT wcFirst,
1988     _In_ UINT cwc,
1989     _In_reads_opt_(cwc) PWCHAR pwc,
1990     _In_ FLONG fl,
1991     _Out_writes_bytes_(cwc * sizeof(ULONG)) PVOID pvBuf);
1992 
1993 __kernel_entry
1994 W32KAPI
1995 BOOL
1996 APIENTRY
1997 NtGdiGetCharWidthInfo(
1998     _In_ HDC hdc,
1999     _Out_ PCHWIDTHINFO pChWidthInfo);
2000 
2001 __kernel_entry
2002 W32KAPI
2003 INT
2004 APIENTRY
2005 NtGdiDrawEscape(
2006     _In_ HDC hdc,
2007     _In_ INT iEsc,
2008     _In_ INT cjIn,
2009     _In_reads_bytes_opt_(cjIn) LPSTR pjIn);
2010 
2011 __kernel_entry
2012 W32KAPI
2013 INT
2014 APIENTRY
2015 NtGdiExtEscape(
2016     _In_opt_ HDC hdc,
2017     _In_reads_opt_(cwcDriver) PWCHAR pDriver,
2018     _In_ INT cwcDriver,
2019     _In_ INT iEsc,
2020     _In_ INT cjIn,
2021     _In_reads_bytes_opt_(cjIn) LPSTR pjIn,
2022     _In_ INT cjOut,
2023     _Out_writes_bytes_opt_(cjOut) LPSTR pjOut);
2024 
2025 _Success_(return != GDI_ERROR)
2026 __kernel_entry
2027 W32KAPI
2028 ULONG
2029 APIENTRY
2030 NtGdiGetFontData(
2031     _In_ HDC hdc,
2032     _In_ DWORD dwTable,
2033     _In_ DWORD dwOffset,
2034     _Out_writes_bytes_to_opt_(cjBuf, return) PVOID pvBuf,
2035     _In_ ULONG cjBuf);
2036 
2037 __kernel_entry
2038 W32KAPI
2039 DWORD
2040 APIENTRY
2041 NtGdiGetFontFileData(
2042     _In_ UINT uFileCollectionID,
2043     _In_ UINT uFileIndex,
2044     _In_ PULONGLONG pullFileOffset,
2045     _Out_writes_bytes_(cjBuf) PVOID pvBuf,
2046     _In_ SIZE_T cjBuf);
2047 
2048 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN7)
2049 __kernel_entry
2050 W32KAPI
2051 DWORD
2052 APIENTRY
2053 NtGdiGetFontFileInfo(
2054     _In_ UINT uFileCollectionID,
2055     _In_ UINT uFileIndex,
2056     _Out_writes_bytes_(cjSize) PFONT_FILE_INFO pffi,
2057     _In_ SIZE_T cjSize,
2058     _Out_opt_ PSIZE_T pcjActualSize);
2059 #endif /* (_WIN32_WINNT >= _WIN32_WINNT_WIN7) */
2060 
2061 __kernel_entry
2062 W32KAPI
2063 ULONG
2064 APIENTRY
2065 NtGdiGetGlyphOutline(
2066     _In_ HDC hdc,
2067     _In_ WCHAR wch,
2068     _In_ UINT iFormat,
2069     _Out_ LPGLYPHMETRICS pgm,
2070     _In_ ULONG cjBuf,
2071     _Out_writes_bytes_opt_(cjBuf) PVOID pvBuf,
2072     _In_ LPMAT2 pmat2,
2073     _In_ BOOL bIgnoreRotation);
2074 
2075 __kernel_entry
2076 W32KAPI
2077 BOOL
2078 APIENTRY
2079 NtGdiGetETM(
2080     _In_ HDC hdc,
2081     _Out_opt_ EXTTEXTMETRIC *petm);
2082 
2083 __kernel_entry
2084 W32KAPI
2085 BOOL
2086 APIENTRY
2087 NtGdiGetRasterizerCaps(
2088     _Out_writes_bytes_(cjBytes) LPRASTERIZER_STATUS praststat,
2089     _In_ ULONG cjBytes);
2090 
2091 __kernel_entry
2092 W32KAPI
2093 ULONG
2094 APIENTRY
2095 NtGdiGetKerningPairs(
2096     _In_ HDC hdc,
2097     _In_ ULONG cPairs,
2098     _Out_writes_to_opt_(cPairs, return) KERNINGPAIR *pkpDst);
2099 
2100 __kernel_entry
2101 W32KAPI
2102 BOOL
2103 APIENTRY
2104 NtGdiMonoBitmap(
2105     _In_ HBITMAP hbm);
2106 
2107 __kernel_entry
2108 W32KAPI
2109 HBITMAP
2110 APIENTRY
2111 NtGdiGetObjectBitmapHandle(
2112     _In_ HBRUSH hbr,
2113     _Out_ UINT *piUsage);
2114 
2115 __kernel_entry
2116 W32KAPI
2117 ULONG
2118 APIENTRY
2119 NtGdiEnumObjects(
2120     _In_ HDC hdc,
2121     _In_ INT iObjectType,
2122     _In_ ULONG cjBuf,
2123     _Out_writes_bytes_opt_(cjBuf) PVOID pvBuf);
2124 
2125 __kernel_entry
2126 W32KAPI
2127 BOOL
2128 APIENTRY
2129 NtGdiResetDC(
2130     _In_ HDC hdc,
2131     _In_ LPDEVMODEW pdm,
2132     _Out_ PBOOL pbBanding,
2133     _In_opt_ DRIVER_INFO_2W *pDriverInfo2,
2134     _At_((PUMDHPDEV*)ppUMdhpdev, _Out_) PVOID ppUMdhpdev);
2135 
2136 __kernel_entry
2137 W32KAPI
2138 DWORD
2139 APIENTRY
2140 NtGdiSetBoundsRect(
2141     _In_ HDC hdc,
2142     _In_ LPRECT prc,
2143     _In_ DWORD f);
2144 
2145 __kernel_entry
2146 W32KAPI
2147 BOOL
2148 APIENTRY
2149 NtGdiGetColorAdjustment(
2150     _In_ HDC hdc,
2151     _Out_ PCOLORADJUSTMENT pcaOut);
2152 
2153 __kernel_entry
2154 W32KAPI
2155 BOOL
2156 APIENTRY
2157 NtGdiSetColorAdjustment(
2158     _In_ HDC hdc,
2159     _In_ PCOLORADJUSTMENT pca);
2160 
2161 __kernel_entry
2162 W32KAPI
2163 BOOL
2164 APIENTRY
2165 NtGdiCancelDC(
2166     _In_ HDC hdc);
2167 
2168 __kernel_entry
2169 W32KAPI
2170 HDC
2171 APIENTRY
2172 NtGdiOpenDCW(
2173     _In_opt_ PUNICODE_STRING pustrDevice,
2174     _In_ DEVMODEW *pdm,
2175     _In_ PUNICODE_STRING pustrLogAddr,
2176     _In_ ULONG iType,
2177     _In_ BOOL bDisplay,
2178     _In_opt_ HANDLE hspool,
2179     _At_((PUMDHPDEV*)pUMdhpdev, _Out_) PVOID pUMdhpdev);
2180 
2181 __kernel_entry
2182 W32KAPI
2183 BOOL
2184 APIENTRY
2185 NtGdiGetDCDword(
2186     _In_ HDC hdc,
2187     _In_ UINT u,
2188     _Out_ DWORD *Result);
2189 
2190 _Success_(return!=FALSE)
2191 __kernel_entry
2192 W32KAPI
2193 BOOL
2194 APIENTRY
2195 NtGdiGetDCPoint(
2196     _In_ HDC hdc,
2197     _In_ UINT iPoint,
2198     _Out_ PPOINTL pptOut);
2199 
2200 __kernel_entry
2201 W32KAPI
2202 BOOL
2203 APIENTRY
2204 NtGdiScaleViewportExtEx(
2205     _In_ HDC hdc,
2206     _In_ INT xNum,
2207     _In_ INT xDenom,
2208     _In_ INT yNum,
2209     _In_ INT yDenom,
2210     _Out_opt_ LPSIZE pszOut);
2211 
2212 __kernel_entry
2213 W32KAPI
2214 BOOL
2215 APIENTRY
2216 NtGdiScaleWindowExtEx(
2217     _In_ HDC hdc,
2218     _In_ INT xNum,
2219     _In_ INT xDenom,
2220     _In_ INT yNum,
2221     _In_ INT yDenom,
2222     _Out_opt_ LPSIZE pszOut);
2223 
2224 __kernel_entry
2225 W32KAPI
2226 BOOL
2227 APIENTRY
2228 NtGdiSetVirtualResolution(
2229     _In_ HDC hdc,
2230     _In_ INT cxVirtualDevicePixel,
2231     _In_ INT cyVirtualDevicePixel,
2232     _In_ INT cxVirtualDeviceMm,
2233     _In_ INT cyVirtualDeviceMm);
2234 
2235 __kernel_entry
2236 W32KAPI
2237 BOOL
2238 APIENTRY
2239 NtGdiSetSizeDevice(
2240     _In_ HDC hdc,
2241     _In_ INT cxVirtualDevice,
2242     _In_ INT cyVirtualDevice);
2243 
2244 _Success_(return !=FALSE)
2245 __kernel_entry
2246 W32KAPI
2247 BOOL
2248 APIENTRY
2249 NtGdiGetTransform(
2250     _In_ HDC hdc,
2251     _In_ DWORD iXform,
2252     _Out_ LPXFORM pxf);
2253 
2254 __kernel_entry
2255 W32KAPI
2256 BOOL
2257 APIENTRY
2258 NtGdiModifyWorldTransform(
2259     _In_ HDC hdc,
2260     _In_opt_ LPXFORM pxf,
2261     _In_ DWORD iXform);
2262 
2263 __kernel_entry
2264 W32KAPI
2265 BOOL
2266 APIENTRY
2267 NtGdiCombineTransform(
2268     _Out_ LPXFORM pxfDst,
2269     _In_ LPXFORM pxfSrc1,
2270     _In_ LPXFORM pxfSrc2);
2271 
2272 __kernel_entry
2273 W32KAPI
2274 BOOL
2275 APIENTRY
2276 NtGdiTransformPoints(
2277     _In_ HDC hdc,
2278     _In_reads_(c) PPOINT pptIn,
2279     _Out_writes_(c) PPOINT pptOut,
2280     _In_ INT c,
2281     _In_ INT iMode);
2282 
2283 __kernel_entry
2284 W32KAPI
2285 LONG
2286 APIENTRY
2287 NtGdiConvertMetafileRect(
2288     _In_ HDC hdc,
2289     _Inout_ PRECTL prect);
2290 
2291 __kernel_entry
2292 W32KAPI
2293 INT
2294 APIENTRY
2295 NtGdiGetTextCharsetInfo(
2296     _In_ HDC hdc,
2297     _Out_opt_ LPFONTSIGNATURE lpSig,
2298     _In_ DWORD dwFlags);
2299 
2300 __kernel_entry
2301 W32KAPI
2302 BOOL
2303 APIENTRY
2304 NtGdiDoBanding(
2305     _In_ HDC hdc,
2306     _In_ BOOL bStart,
2307     _Out_ POINTL *pptl,
2308     _Out_ PSIZE pSize);
2309 
2310 __kernel_entry
2311 W32KAPI
2312 ULONG
2313 APIENTRY
2314 NtGdiGetPerBandInfo(
2315     _In_ HDC hdc,
2316     _Inout_ PERBANDINFO *ppbi);
2317 
2318 __kernel_entry
2319 W32KAPI
2320 NTSTATUS
2321 APIENTRY
2322 NtGdiGetStats(
2323     _In_ HANDLE hProcess,
2324     _In_ INT iIndex,
2325     _In_ INT iPidType,
2326     _Out_writes_bytes_(cjResultSize) PVOID pResults,
2327     _In_ UINT cjResultSize);
2328 
2329 __kernel_entry
2330 W32KAPI
2331 BOOL
2332 APIENTRY
2333 NtGdiSetMagicColors(
2334     _In_ HDC hdc,
2335     _In_ PALETTEENTRY peMagic,
2336     _In_ ULONG Index);
2337 
2338 __kernel_entry
2339 W32KAPI
2340 HBRUSH
2341 APIENTRY
2342 NtGdiSelectBrush(
2343     _In_ HDC hdc,
2344     _In_ HBRUSH hbrush);
2345 
2346 __kernel_entry
2347 W32KAPI
2348 HPEN
2349 APIENTRY
2350 NtGdiSelectPen(
2351     _In_ HDC hdc,
2352     _In_ HPEN hpen);
2353 
2354 __kernel_entry
2355 W32KAPI
2356 HBITMAP
2357 APIENTRY
2358 NtGdiSelectBitmap(
2359     _In_ HDC hdc,
2360     _In_ HBITMAP hbm);
2361 
2362 __kernel_entry
2363 W32KAPI
2364 HFONT
2365 APIENTRY
2366 NtGdiSelectFont(
2367     _In_ HDC hdc,
2368     _In_ HFONT hf);
2369 
2370 __kernel_entry
2371 W32KAPI
2372 INT
2373 APIENTRY
2374 NtGdiExtSelectClipRgn(
2375     _In_ HDC hdc,
2376     _In_opt_ HRGN hrgn,
2377     _In_ INT iMode);
2378 
2379 __kernel_entry
2380 W32KAPI
2381 HPEN
2382 APIENTRY
2383 NtGdiCreatePen(
2384     _In_ INT iPenStyle,
2385     _In_ INT iPenWidth,
2386     _In_ COLORREF cr,
2387     _In_opt_ HBRUSH hbr);
2388 
2389 #ifdef _WINDOWBLT_NOTIFICATION_
2390 __kernel_entry
2391 W32KAPI
2392 BOOL
2393 APIENTRY
2394 NtGdiBitBlt(
2395     _In_ HDC hdcDst,
2396     _In_ INT x,
2397     _In_ INT y,
2398     _In_ INT cx,
2399     _In_ INT cy,
2400     _In_opt_ HDC hdcSrc,
2401     _In_ INT xSrc,
2402     _In_ INT ySrc,
2403     _In_ DWORD rop4,
2404     _In_ DWORD crBackColor,
2405     _In_ FLONG fl);
2406 #else
2407 __kernel_entry
2408 W32KAPI
2409 BOOL
2410 APIENTRY
2411 NtGdiBitBlt(
2412     _In_ HDC hdcDst,
2413     _In_ INT x,
2414     _In_ INT y,
2415     _In_ INT cx,
2416     _In_ INT cy,
2417     _In_opt_ HDC hdcSrc,
2418     _In_ INT xSrc,
2419     _In_ INT ySrc,
2420     _In_ DWORD rop4,
2421     _In_ DWORD crBackColor);
2422 #endif
2423 
2424 __kernel_entry
2425 W32KAPI
2426 BOOL
2427 APIENTRY
2428 NtGdiTileBitBlt(
2429     _In_ HDC hdcDst,
2430     _In_ RECTL *prectDst,
2431     _In_ HDC hdcSrc,
2432     _In_ RECTL *prectSrc,
2433     _In_ POINTL *pptlOrigin,
2434     _In_ DWORD rop4,
2435     _In_ DWORD crBackColor);
2436 
2437 __kernel_entry
2438 W32KAPI
2439 BOOL
2440 APIENTRY
2441 NtGdiTransparentBlt(
2442     _In_ HDC hdcDst,
2443     _In_ INT xDst,
2444     _In_ INT yDst,
2445     _In_ INT cxDst,
2446     _In_ INT cyDst,
2447     _In_ HDC hdcSrc,
2448     _In_ INT xSrc,
2449     _In_ INT ySrc,
2450     _In_ INT cxSrc,
2451     _In_ INT cySrc,
2452     _In_ COLORREF TransColor);
2453 
2454 __kernel_entry
2455 W32KAPI
2456 BOOL
2457 APIENTRY
2458 NtGdiGetTextExtent(
2459     _In_ HDC hdc,
2460     _In_reads_(cwc) LPWSTR lpwsz,
2461     _In_ INT cwc,
2462     _Out_ LPSIZE psize,
2463     _In_ UINT flOpts);
2464 
2465 _Success_(return != FALSE)
2466 __kernel_entry
2467 W32KAPI
2468 BOOL
2469 APIENTRY
2470 NtGdiGetTextMetricsW(
2471     _In_ HDC hdc,
2472     _Out_writes_bytes_(cj) TMW_INTERNAL *ptm,
2473     _In_ ULONG cj);
2474 
2475 __kernel_entry
2476 W32KAPI
2477 INT
2478 APIENTRY
2479 NtGdiGetTextFaceW(
2480     _In_ HDC hdc,
2481     _In_ INT cChar,
2482     _Out_writes_to_opt_(cChar, return) LPWSTR pszOut,
2483     _In_ BOOL bAliasName);
2484 
2485 __kernel_entry
2486 W32KAPI
2487 INT
2488 APIENTRY
2489 NtGdiGetRandomRgn(
2490     _In_ HDC hdc,
2491     _In_ HRGN hrgn,
2492     _In_ INT iRgn);
2493 
2494 __kernel_entry
2495 W32KAPI
2496 BOOL
2497 APIENTRY
2498 NtGdiExtTextOutW(
2499     _In_ HDC hdc,
2500     _In_ INT x,
2501     _In_ INT y,
2502     _In_ UINT flOpts,
2503     _In_opt_ LPRECT prcl,
2504     _In_reads_opt_(cwc) LPWSTR pwsz,
2505     _In_range_(0, 0xffff) INT cwc,
2506     _In_reads_opt_(_Inexpressible_(cwc)) LPINT pdx,
2507     _In_ DWORD dwCodePage);
2508 
2509 __kernel_entry
2510 W32KAPI
2511 INT
2512 APIENTRY
2513 NtGdiIntersectClipRect(
2514     _In_ HDC hdc,
2515     _In_ INT xLeft,
2516     _In_ INT yTop,
2517     _In_ INT xRight,
2518     _In_ INT yBottom);
2519 
2520 __kernel_entry
2521 W32KAPI
2522 HRGN
2523 APIENTRY
2524 NtGdiCreateRectRgn(
2525     _In_ INT xLeft,
2526     _In_ INT yTop,
2527     _In_ INT xRight,
2528     _In_ INT yBottom);
2529 
2530 __kernel_entry
2531 W32KAPI
2532 BOOL
2533 APIENTRY
2534 NtGdiPatBlt(
2535     _In_ HDC hdcDest,
2536     _In_ INT x,
2537     _In_ INT y,
2538     _In_ INT cx,
2539     _In_ INT cy,
2540     _In_ DWORD dwRop);
2541 
2542 __kernel_entry
2543 W32KAPI
2544 BOOL
2545 APIENTRY
2546 NtGdiPolyPatBlt(
2547     _In_ HDC hdc,
2548     _In_ DWORD rop4,
2549     _In_reads_(cPoly) PPOLYPATBLT pPoly,
2550     _In_ DWORD cPoly,
2551     _In_ DWORD dwMode);
2552 
2553 __kernel_entry
2554 W32KAPI
2555 BOOL
2556 APIENTRY
2557 NtGdiUnrealizeObject(
2558     _In_ HANDLE h);
2559 
2560 __kernel_entry
2561 W32KAPI
2562 HANDLE
2563 APIENTRY
2564 NtGdiGetStockObject(
2565     _In_ INT iObject);
2566 
2567 __kernel_entry
2568 W32KAPI
2569 HBITMAP
2570 APIENTRY
2571 NtGdiCreateCompatibleBitmap(
2572     _In_ HDC hdc,
2573     _In_ INT cx,
2574     _In_ INT cy);
2575 
2576 __kernel_entry
2577 W32KAPI
2578 HBITMAP
2579 APIENTRY
2580 NtGdiCreateBitmapFromDxSurface(
2581     _In_ HDC hdc,
2582     _In_ UINT uiWidth,
2583     _In_ UINT uiHeight,
2584     _In_ DWORD Format,
2585     _In_opt_ HANDLE hDxSharedSurface);
2586 
2587 __kernel_entry
2588 W32KAPI
2589 HBITMAP
2590 APIENTRY
2591 NtGdiCreateBitmapFromDxSurface2(
2592     _In_ HDC hdc,
2593     _In_ UINT uiWidth,
2594     _In_ UINT uiHeight,
2595     _In_ DWORD Format,
2596     _In_ DWORD SubresourceIndex,
2597     _In_ BOOL bSharedSurfaceNtHandle,
2598     _In_opt_ HANDLE hDxSharedSurface);
2599 
2600 __kernel_entry
2601 W32KAPI
2602 BOOL
2603 APIENTRY
2604 NtGdiBeginGdiRendering(
2605     _In_ HBITMAP hbm,
2606     _In_ BOOL bDiscard,
2607     _In_ PVOID KernelModeDeviceHandle);
2608 
2609 __kernel_entry
2610 W32KAPI
2611 BOOL
2612 APIENTRY
2613 NtGdiEndGdiRendering(
2614     _In_ HBITMAP hbm,
2615     _In_ BOOL bDiscard,
2616     _Out_ BOOL* pbDeviceRemoved,
2617     _In_ PVOID KernelModeDeviceHandle);
2618 
2619 __kernel_entry
2620 W32KAPI
2621 BOOL
2622 APIENTRY
2623 NtGdiLineTo(
2624     _In_ HDC hdc,
2625     _In_ INT x,
2626     _In_ INT y);
2627 
2628 _Success_(return != FALSE)
2629 __kernel_entry
2630 W32KAPI
2631 BOOL
2632 APIENTRY
2633 NtGdiMoveTo(
2634     _In_ HDC hdc,
2635     _In_ INT x,
2636     _In_ INT y,
2637     _Out_opt_ LPPOINT pptOut);
2638 
2639 _Success_(return != 0)
2640 __kernel_entry
2641 W32KAPI
2642 INT
2643 APIENTRY
2644 NtGdiExtGetObjectW(
2645     _In_ HANDLE h,
2646     _In_ INT cj,
2647     _Out_writes_bytes_opt_(cj) LPVOID pvOut);
2648 
2649 __kernel_entry
2650 W32KAPI
2651 INT
2652 APIENTRY
2653 NtGdiGetDeviceCaps(
2654     _In_ HDC hdc,
2655     _In_ INT i);
2656 
2657 _Success_(return!=FALSE)
2658 __kernel_entry
2659 W32KAPI
2660 BOOL
2661 APIENTRY
2662 NtGdiGetDeviceCapsAll (
2663     _In_opt_ HDC hdc,
2664     _Out_ PDEVCAPS pDevCaps);
2665 
2666 __kernel_entry
2667 W32KAPI
2668 BOOL
2669 APIENTRY
2670 NtGdiStretchBlt(
2671     _In_ HDC hdcDst,
2672     _In_ INT xDst,
2673     _In_ INT yDst,
2674     _In_ INT cxDst,
2675     _In_ INT cyDst,
2676     _In_opt_ HDC hdcSrc,
2677     _In_ INT xSrc,
2678     _In_ INT ySrc,
2679     _In_ INT cxSrc,
2680     _In_ INT cySrc,
2681     _In_ DWORD dwRop,
2682     _In_ DWORD dwBackColor);
2683 
2684 _Success_(return!=FALSE)
2685 __kernel_entry
2686 W32KAPI
2687 BOOL
2688 APIENTRY
2689 NtGdiSetBrushOrg(
2690     _In_ HDC hdc,
2691     _In_ INT x,
2692     _In_ INT y,
2693     _Out_opt_ LPPOINT pptOut);
2694 
2695 __kernel_entry
2696 W32KAPI
2697 HBITMAP
2698 APIENTRY
2699 NtGdiCreateBitmap(
2700     _In_ INT cx,
2701     _In_ INT cy,
2702     _In_ UINT cPlanes,
2703     _In_ UINT cBPP,
2704     _In_opt_ LPBYTE pjInit);
2705 
2706 __kernel_entry
2707 W32KAPI
2708 HPALETTE
2709 APIENTRY
2710 NtGdiCreateHalftonePalette(
2711     _In_ HDC hdc);
2712 
2713 __kernel_entry
2714 W32KAPI
2715 BOOL
2716 APIENTRY
2717 NtGdiRestoreDC(
2718     _In_ HDC hdc,
2719     _In_ INT iLevel);
2720 
2721 __kernel_entry
2722 W32KAPI
2723 INT
2724 APIENTRY
2725 NtGdiExcludeClipRect(
2726     _In_ HDC hdc,
2727     _In_ INT xLeft,
2728     _In_ INT yTop,
2729     _In_ INT xRight,
2730     _In_ INT yBottom);
2731 
2732 __kernel_entry
2733 W32KAPI
2734 INT
2735 APIENTRY
2736 NtGdiSaveDC(
2737     _In_ HDC hdc);
2738 
2739 __kernel_entry
2740 W32KAPI
2741 INT
2742 APIENTRY
2743 NtGdiCombineRgn(
2744     _In_ HRGN hrgnDst,
2745     _In_ HRGN hrgnSrc1,
2746     _In_opt_ HRGN hrgnSrc2,
2747     _In_ INT iMode);
2748 
2749 __kernel_entry
2750 W32KAPI
2751 BOOL
2752 APIENTRY
2753 NtGdiSetRectRgn(
2754     _In_ HRGN hrgn,
2755     _In_ INT xLeft,
2756     _In_ INT yTop,
2757     _In_ INT xRight,
2758     _In_ INT yBottom);
2759 
2760 __kernel_entry
2761 W32KAPI
2762 LONG
2763 APIENTRY
2764 NtGdiSetBitmapBits(
2765     _In_ HBITMAP hbm,
2766     _In_ ULONG cj,
2767     _In_reads_bytes_(cj) PBYTE pjInit);
2768 
2769 _Success_(return!=0)
2770 __kernel_entry
2771 W32KAPI
2772 INT
2773 APIENTRY
2774 NtGdiGetDIBitsInternal(
2775     _In_ HDC hdc,
2776     _In_ HBITMAP hbm,
2777     _In_ UINT iStartScan,
2778     _In_ UINT cScans,
2779     _Out_writes_bytes_opt_(cjMaxBits) LPBYTE pjBits,
2780     _Inout_ LPBITMAPINFO pbmi,
2781     _In_ UINT iUsage,
2782     _In_ UINT cjMaxBits,
2783     _In_ UINT cjMaxInfo);
2784 
2785 __kernel_entry
2786 W32KAPI
2787 INT
2788 APIENTRY
2789 NtGdiOffsetRgn(
2790     _In_ HRGN hrgn,
2791     _In_ INT cx,
2792     _In_ INT cy);
2793 
2794 _Success_(return!=ERROR)
2795 __kernel_entry
2796 W32KAPI
2797 INT
2798 APIENTRY
2799 NtGdiGetRgnBox(
2800     _In_ HRGN hrgn,
2801     _Out_ LPRECT prcOut);
2802 
2803 __kernel_entry
2804 W32KAPI
2805 BOOL
2806 APIENTRY
2807 NtGdiRectInRegion(
2808     _In_ HRGN hrgn,
2809     _Inout_ LPRECT prcl);
2810 
2811 _Success_(return!=0)
2812 __kernel_entry
2813 W32KAPI
2814 DWORD
2815 APIENTRY
2816 NtGdiGetBoundsRect(
2817     _In_ HDC hdc,
2818     _Out_ LPRECT prc,
2819     _In_ DWORD f);
2820 
2821 __kernel_entry
2822 W32KAPI
2823 BOOL
2824 APIENTRY
2825 NtGdiPtInRegion(
2826     _In_ HRGN hrgn,
2827     _In_ INT x,
2828     _In_ INT y);
2829 
2830 __kernel_entry
2831 W32KAPI
2832 COLORREF
2833 APIENTRY
2834 NtGdiGetNearestColor(
2835     _In_ HDC hdc,
2836     _In_ COLORREF cr);
2837 
2838 __kernel_entry
2839 W32KAPI
2840 UINT
2841 APIENTRY
2842 NtGdiGetSystemPaletteUse(
2843     _In_ HDC hdc);
2844 
2845 __kernel_entry
2846 W32KAPI
2847 UINT
2848 APIENTRY
2849 NtGdiSetSystemPaletteUse(
2850     _In_ HDC hdc,
2851     _In_ UINT ui);
2852 
2853 _Success_(return!=0)
2854 __kernel_entry
2855 W32KAPI
2856 ULONG
2857 APIENTRY
2858 NtGdiGetRegionData(
2859     _In_ HRGN hrgn,
2860     _In_ ULONG cjBuffer,
2861     _Out_writes_bytes_to_opt_(cjBuffer, return) LPRGNDATA lpRgnData);
2862 
2863 __kernel_entry
2864 W32KAPI
2865 BOOL
2866 APIENTRY
2867 NtGdiInvertRgn(
2868     _In_ HDC hdc,
2869     _In_ HRGN hrgn);
2870 
2871 __kernel_entry
2872 INT
2873 W32KAPI
2874 APIENTRY
2875 NtGdiAddFontResourceW(
2876     _In_reads_(cwc) WCHAR *pwszFiles,
2877     _In_ ULONG cwc,
2878     _In_ ULONG cFiles,
2879     _In_ FLONG f,
2880     _In_ DWORD dwPidTid,
2881     _In_opt_ DESIGNVECTOR *pdv);
2882 
2883 __kernel_entry
2884 W32KAPI
2885 HFONT
2886 APIENTRY
2887 NtGdiHfontCreate(
2888     _In_reads_bytes_(cjElfw) ENUMLOGFONTEXDVW *pelfw,
2889     _In_ ULONG cjElfw,
2890     _In_ LFTYPE lft,
2891     _In_ FLONG fl,
2892     _In_ PVOID pvCliData);
2893 
2894 __kernel_entry
2895 W32KAPI
2896 ULONG
2897 APIENTRY
2898 NtGdiSetFontEnumeration(
2899     _In_ ULONG ulType);
2900 
2901 __kernel_entry
2902 W32KAPI
2903 BOOL
2904 APIENTRY
2905 NtGdiEnumFonts(
2906     _In_ HDC hdc,
2907     _In_ ULONG iEnumType,
2908     _In_ FLONG flWin31Compat,
2909     _In_ ULONG cchFaceName,
2910     _In_reads_opt_(cchFaceName) LPCWSTR pwszFaceName,
2911     _In_ ULONG lfCharSet,
2912     _Inout_ ULONG *pulCount,
2913     _Out_writes_bytes_opt_(*pulCount) PVOID pvUserModeBuffer);
2914 
2915 __kernel_entry
2916 W32KAPI
2917 BOOL
2918 APIENTRY
2919 NtGdiEnumFontClose(
2920     _In_ ULONG_PTR idEnum);
2921 
2922 __kernel_entry
2923 W32KAPI
2924 BOOL
2925 APIENTRY
2926 NtGdiEnumFontChunk(
2927     _In_ HDC hdc,
2928     _In_ ULONG_PTR idEnum,
2929     _In_ ULONG cjEfdw,
2930     _Out_ ULONG *pcjEfdw,
2931     _Out_ PENUMFONTDATAW pefdw);
2932 
2933 __kernel_entry
2934 W32KAPI
2935 ULONG_PTR
2936 APIENTRY
2937 NtGdiEnumFontOpen(
2938     _In_ HDC hdc,
2939     _In_ ULONG iEnumType,
2940     _In_ FLONG flWin31Compat,
2941     _In_ ULONG cwchMax,
2942     _In_opt_ LPWSTR pwszFaceName,
2943     _In_ ULONG lfCharSet,
2944     _Out_ ULONG *pulCount);
2945 
2946 __kernel_entry
2947 W32KAPI
2948 INT
2949 APIENTRY
2950 NtGdiQueryFonts(
2951     _Out_writes_(nBufferSize) PUNIVERSAL_FONT_ID pufiFontList,
2952     _In_ ULONG nBufferSize,
2953     _Out_ PLARGE_INTEGER pTimeStamp);
2954 
2955 __kernel_entry
2956 W32KAPI
2957 BOOL
2958 APIENTRY
2959 NtGdiConsoleTextOut(
2960     _In_ HDC hdc,
2961     _In_ POLYTEXTW *lpto,
2962     _In_ UINT nStrings,
2963     _In_ RECTL *prclBounds);
2964 
2965 __kernel_entry
2966 W32KAPI
2967 NTSTATUS
2968 APIENTRY
2969 NtGdiFullscreenControl(
2970     _In_ FULLSCREENCONTROL FullscreenCommand,
2971     _In_ PVOID FullscreenInput,
2972     _In_ DWORD FullscreenInputLength,
2973     _Out_ PVOID FullscreenOutput,
2974     _Inout_ PULONG FullscreenOutputLength);
2975 
2976 __kernel_entry
2977 W32KAPI
2978 DWORD
2979 APIENTRY
2980 NtGdiGetCharSet(
2981     _In_ HDC hdc);
2982 
2983 __kernel_entry
2984 W32KAPI
2985 BOOL
2986 APIENTRY
2987 NtGdiEnableEudc(
2988     _In_ BOOL b);
2989 
2990 __kernel_entry
2991 W32KAPI
2992 BOOL
2993 APIENTRY
2994 NtGdiEudcLoadUnloadLink(
2995     _In_reads_opt_(cwcBaseFaceName) LPCWSTR pBaseFaceName,
2996     _In_ UINT cwcBaseFaceName,
2997     _In_reads_(cwcEudcFontPath) LPCWSTR pEudcFontPath,
2998     _In_ UINT cwcEudcFontPath,
2999     _In_ INT iPriority,
3000     _In_ INT iFontLinkType,
3001     _In_ BOOL bLoadLin);
3002 
3003 __kernel_entry
3004 W32KAPI
3005 UINT
3006 APIENTRY
3007 NtGdiGetStringBitmapW(
3008     _In_ HDC hdc,
3009     _In_ LPWSTR pwsz,
3010     _In_ UINT cwc,
3011     _Out_writes_bytes_(cj) BYTE *lpSB,
3012     _In_ UINT cj);
3013 
3014 __kernel_entry
3015 W32KAPI
3016 ULONG
3017 APIENTRY
3018 NtGdiGetEudcTimeStampEx(
3019     _In_reads_opt_(cwcBaseFaceName) LPWSTR lpBaseFaceName,
3020     _In_ ULONG cwcBaseFaceName,
3021     _In_ BOOL bSystemTimeStamp);
3022 
3023 __kernel_entry
3024 W32KAPI
3025 ULONG
3026 APIENTRY
3027 NtGdiQueryFontAssocInfo(
3028     _In_ HDC hdc);
3029 
3030 __kernel_entry
3031 W32KAPI
3032 DWORD
3033 APIENTRY
3034 NtGdiGetFontUnicodeRanges(
3035     _In_ HDC hdc,
3036     _Out_ _Post_bytecount_(return) LPGLYPHSET pgs);
3037 
3038 #ifdef LANGPACK
3039 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN7)
3040 __kernel_entry
3041 W32KAPI
3042 BOOL
3043 NtGdiGetRealizationInfo(
3044     _In_ HDC hdc,
3045     _Out_ PFONT_REALIZATION_INFO pri);
3046 #else
3047 __kernel_entry
3048 W32KAPI
3049 BOOL
3050 APIENTRY
3051 NtGdiGetRealizationInfo(
3052     _In_ HDC hdc,
3053     _Out_ PREALIZATION_INFO pri,
3054     _In_ HFONT hf);
3055 #endif
3056 #endif
3057 
3058 __kernel_entry
3059 W32KAPI
3060 BOOL
3061 APIENTRY
3062 NtGdiAddRemoteMMInstanceToDC(
3063     _In_ HDC hdc,
3064     _In_reads_bytes_(cjDDV) DOWNLOADDESIGNVECTOR *pddv,
3065     _In_ ULONG cjDDV);
3066 
3067 __kernel_entry
3068 W32KAPI
3069 BOOL
3070 APIENTRY
3071 NtGdiUnloadPrinterDriver(
3072     _In_reads_bytes_(cbDriverName) LPWSTR pDriverName,
3073     _In_ ULONG cbDriverName);
3074 
3075 __kernel_entry
3076 W32KAPI
3077 BOOL
3078 APIENTRY
3079 NtGdiInitSpool(
3080     VOID);
3081 
3082 __kernel_entry
3083 W32KAPI
3084 INT
3085 APIENTRY
3086 NtGdiGetSpoolMessage(
3087     DWORD u1,
3088     DWORD u2,
3089     DWORD u3,
3090     DWORD u4);
3091 
3092 __kernel_entry
3093 W32KAPI
3094 BOOL
3095 APIENTRY
3096 NtGdiEngAssociateSurface(
3097     _In_ HSURF hsurf,
3098     _In_ HDEV hdev,
3099     _In_ FLONG flHooks);
3100 
3101 __kernel_entry
3102 W32KAPI
3103 BOOL
3104 APIENTRY
3105 NtGdiEngEraseSurface(
3106     _In_ SURFOBJ *pso,
3107     _In_ RECTL *prcl,
3108     _In_ ULONG iColor);
3109 
3110 __kernel_entry
3111 W32KAPI
3112 HBITMAP
3113 APIENTRY
3114 NtGdiEngCreateBitmap(
3115     _In_ SIZEL sizl,
3116     _In_ LONG lWidth,
3117     _In_ ULONG iFormat,
3118     _In_ FLONG fl,
3119     _In_opt_ PVOID pvBits);
3120 
3121 __kernel_entry
3122 W32KAPI
3123 BOOL
3124 APIENTRY
3125 NtGdiEngDeleteSurface(
3126     _In_ HSURF hsurf);
3127 
3128 __kernel_entry
3129 W32KAPI
3130 SURFOBJ*
3131 APIENTRY
3132 NtGdiEngLockSurface(
3133     _In_ HSURF hsurf);
3134 
3135 __kernel_entry
3136 W32KAPI
3137 NTSTATUS
3138 APIENTRY
3139 NtGdiEngUnlockSurface(
3140     _In_ SURFOBJ *pso);
3141 
3142 __kernel_entry
3143 W32KAPI
3144 BOOL
3145 APIENTRY
3146 NtGdiEngMarkBandingSurface(
3147     _In_ HSURF hsurf);
3148 
3149 __kernel_entry
3150 W32KAPI
3151 HSURF
3152 APIENTRY
3153 NtGdiEngCreateDeviceSurface(
3154     _In_ DHSURF dhsurf,
3155     _In_ SIZEL sizl,
3156     _In_ ULONG iFormatCompat);
3157 
3158 __kernel_entry
3159 W32KAPI
3160 HBITMAP
3161 APIENTRY
3162 NtGdiEngCreateDeviceBitmap(
3163     _In_ DHSURF dhsurf,
3164     _In_ SIZEL sizl,
3165     _In_ ULONG iFormatCompat);
3166 
3167 __kernel_entry
3168 W32KAPI
3169 BOOL
3170 APIENTRY
3171 NtGdiEngCopyBits(
3172     _In_ SURFOBJ *psoDst,
3173     _In_ SURFOBJ *psoSrc,
3174     _In_opt_ CLIPOBJ *pco,
3175     _In_opt_ XLATEOBJ *pxlo,
3176     _In_ RECTL *prclDst,
3177     _In_ POINTL *pptlSrc);
3178 
3179 __kernel_entry
3180 W32KAPI
3181 BOOL
3182 APIENTRY
3183 NtGdiEngStretchBlt(
3184     _In_ SURFOBJ *psoDest,
3185     _In_ SURFOBJ *psoSrc,
3186     _In_opt_ SURFOBJ *psoMask,
3187     _In_opt_ CLIPOBJ *pco,
3188     _In_opt_ XLATEOBJ *pxlo,
3189     _In_opt_ COLORADJUSTMENT *pca,
3190     _In_ POINTL *pptlHTOrg,
3191     _In_ RECTL *prclDest,
3192     _In_ RECTL *prclSrc,
3193     _In_opt_ POINTL *pptlMask,
3194     _In_ ULONG iMode);
3195 
3196 __kernel_entry
3197 W32KAPI
3198 BOOL
3199 APIENTRY
3200 NtGdiEngBitBlt(
3201     _In_ SURFOBJ *psoTrg,
3202     _In_opt_ SURFOBJ *psoSrc,
3203     _In_opt_ SURFOBJ *psoMask,
3204     _In_opt_ CLIPOBJ *pco,
3205     _In_opt_ XLATEOBJ *pxlo,
3206     _In_ RECTL *prclTrg,
3207     _In_opt_ POINTL *pptlSrc,
3208     _In_opt_ POINTL *pptlMask,
3209     _In_opt_ BRUSHOBJ *pbo,
3210     _In_opt_ POINTL *pptlBrush,
3211     _In_ ROP4 rop4);
3212 
3213 __kernel_entry
3214 W32KAPI
3215 BOOL
3216 APIENTRY
3217 NtGdiEngPlgBlt(
3218     _In_ SURFOBJ *psoTrg,
3219     _In_ SURFOBJ *psoSrc,
3220     _In_opt_ SURFOBJ *psoMsk,
3221     _In_ CLIPOBJ *pco,
3222     _In_opt_ XLATEOBJ *pxlo,
3223     _In_ COLORADJUSTMENT *pca,
3224     _In_ POINTL *pptlBrushOrg,
3225     _In_ POINTFIX *pptfx,
3226     _In_ RECTL *prcl,
3227     _In_opt_ POINTL *pptl,
3228     _In_ ULONG iMode);
3229 
3230 __kernel_entry
3231 W32KAPI
3232 HPALETTE
3233 APIENTRY
3234 NtGdiEngCreatePalette(
3235     _In_ ULONG iMode,
3236     _In_ ULONG cColors,
3237     _In_ ULONG *pulColors,
3238     _In_ FLONG flRed,
3239     _In_ FLONG flGreen,
3240     _In_ FLONG flBlue);
3241 
3242 __kernel_entry
3243 W32KAPI
3244 BOOL
3245 APIENTRY
3246 NtGdiEngDeletePalette(
3247     _In_ HPALETTE hPal);
3248 
3249 __kernel_entry
3250 W32KAPI
3251 BOOL
3252 APIENTRY
3253 NtGdiEngStrokePath(
3254     _In_ SURFOBJ *pso,
3255     _In_ PATHOBJ *ppo,
3256     _In_ CLIPOBJ *pco,
3257     _In_ XFORMOBJ *pxo,
3258     _In_ BRUSHOBJ *pbo,
3259     _In_ POINTL *pptlBrushOrg,
3260     _In_ LINEATTRS *plineattrs,
3261     _In_ MIX mix);
3262 
3263 __kernel_entry
3264 W32KAPI
3265 BOOL
3266 APIENTRY
3267 NtGdiEngFillPath(
3268     _In_ SURFOBJ *pso,
3269     _In_ PATHOBJ *ppo,
3270     _In_ CLIPOBJ *pco,
3271     _In_ BRUSHOBJ *pbo,
3272     _In_ POINTL *pptlBrushOrg,
3273     _In_ MIX mix,
3274     _In_ FLONG flOptions);
3275 
3276 __kernel_entry
3277 W32KAPI
3278 BOOL
3279 APIENTRY
3280 NtGdiEngStrokeAndFillPath(
3281     _In_ SURFOBJ *pso,
3282     _In_ PATHOBJ *ppo,
3283     _In_ CLIPOBJ *pco,IN XFORMOBJ *pxo,
3284     _In_ BRUSHOBJ *pboStroke,
3285     _In_ LINEATTRS *plineattrs,
3286     _In_ BRUSHOBJ *pboFill,
3287     _In_ POINTL *pptlBrushOrg,
3288     _In_ MIX mix,
3289     _In_ FLONG flOptions);
3290 
3291 __kernel_entry
3292 W32KAPI
3293 BOOL
3294 APIENTRY
3295 NtGdiEngPaint(
3296     _In_ SURFOBJ *pso,
3297     _In_ CLIPOBJ *pco,
3298     _In_ BRUSHOBJ *pbo,
3299     _In_ POINTL *pptlBrushOrg,
3300     _In_ MIX mix);
3301 
3302 __kernel_entry
3303 W32KAPI
3304 BOOL
3305 APIENTRY
3306 NtGdiEngLineTo(
3307     _In_ SURFOBJ *pso,
3308     _In_ CLIPOBJ *pco,
3309     _In_ BRUSHOBJ *pbo,
3310     _In_ LONG x1,
3311     _In_ LONG y1,
3312     _In_ LONG x2,
3313     _In_ LONG y2,
3314     _In_ RECTL *prclBounds,
3315     _In_ MIX mix);
3316 
3317 __kernel_entry
3318 W32KAPI
3319 BOOL
3320 APIENTRY
3321 NtGdiEngAlphaBlend(
3322     _In_ SURFOBJ *psoDest,
3323     _In_ SURFOBJ *psoSrc,
3324     _In_ CLIPOBJ *pco,
3325     _In_ XLATEOBJ *pxlo,
3326     _In_ RECTL *prclDest,
3327     _In_ RECTL *prclSrc,
3328     _In_ BLENDOBJ *pBlendObj);
3329 
3330 __kernel_entry
3331 W32KAPI
3332 BOOL
3333 APIENTRY
3334 NtGdiEngGradientFill(
3335     _In_ SURFOBJ *psoDest,
3336     _In_ CLIPOBJ *pco,
3337     _In_ XLATEOBJ *pxlo,
3338     _In_reads_(nVertex) TRIVERTEX *pVertex,
3339     _In_ ULONG nVertex,
3340     _In_ /* _In_reads_(nMesh) */ PVOID pMesh,
3341     _In_ ULONG nMesh,
3342     _In_ RECTL *prclExtents,
3343     _In_ POINTL *pptlDitherOrg,
3344     _In_ ULONG ulMode);
3345 
3346 __kernel_entry
3347 W32KAPI
3348 BOOL
3349 APIENTRY
3350 NtGdiEngTransparentBlt(
3351     _In_ SURFOBJ *psoDst,
3352     _In_ SURFOBJ *psoSrc,
3353     _In_ CLIPOBJ *pco,
3354     _In_ XLATEOBJ *pxlo,
3355     _In_ RECTL *prclDst,
3356     _In_ RECTL *prclSrc,
3357     _In_ ULONG iTransColor,
3358     _In_ ULONG ulReserved);
3359 
3360 __kernel_entry
3361 W32KAPI
3362 BOOL
3363 APIENTRY
3364 NtGdiEngTextOut(
3365     _In_ SURFOBJ *pso,
3366     _In_ STROBJ *pstro,
3367     _In_ FONTOBJ *pfo,
3368     _In_ CLIPOBJ *pco,
3369     _In_ RECTL *prclExtra,
3370     _In_ RECTL *prclOpaque,
3371     _In_ BRUSHOBJ *pboFore,
3372     _In_ BRUSHOBJ *pboOpaque,
3373     _In_ POINTL *pptlOrg,
3374     _In_ MIX mix);
3375 
3376 __kernel_entry
3377 W32KAPI
3378 BOOL
3379 APIENTRY
3380 NtGdiEngStretchBltROP(
3381     _In_ SURFOBJ *psoTrg,
3382     _In_ SURFOBJ *psoSrc,
3383     _In_ SURFOBJ *psoMask,
3384     _In_ CLIPOBJ *pco,
3385     _In_ XLATEOBJ *pxlo,
3386     _In_ COLORADJUSTMENT *pca,
3387     _In_ POINTL *pptlBrushOrg,
3388     _In_ RECTL *prclTrg,
3389     _In_ RECTL *prclSrc,
3390     _In_ POINTL *pptlMask,
3391     _In_ ULONG iMode,
3392     _In_ BRUSHOBJ *pbo,
3393     _In_ ROP4 rop4);
3394 
3395 __kernel_entry
3396 W32KAPI
3397 ULONG
3398 APIENTRY
3399 NtGdiXLATEOBJ_cGetPalette(
3400     _In_ XLATEOBJ *pxlo,
3401     _In_ ULONG iPal,
3402     _In_ ULONG cPal,
3403     _Out_writes_(cPal) ULONG *pPal);
3404 
3405 __kernel_entry
3406 W32KAPI
3407 ULONG
3408 APIENTRY
3409 NtGdiCLIPOBJ_cEnumStart(
3410     _In_ CLIPOBJ *pco,
3411     _In_ BOOL bAll,
3412     _In_ ULONG iType,
3413     _In_ ULONG iDirection,
3414     _In_ ULONG cLimit);
3415 
3416 __kernel_entry
3417 W32KAPI
3418 BOOL
3419 APIENTRY
3420 NtGdiCLIPOBJ_bEnum(
3421     _In_ CLIPOBJ *pco,
3422     _In_ ULONG cj,
3423     _Out_writes_bytes_(cj) ULONG *pul);
3424 
3425 __kernel_entry
3426 W32KAPI
3427 PATHOBJ*
3428 APIENTRY
3429 NtGdiCLIPOBJ_ppoGetPath(
3430     _In_ CLIPOBJ *pco);
3431 
3432 __kernel_entry
3433 W32KAPI
3434 CLIPOBJ*
3435 APIENTRY
3436 NtGdiEngCreateClip(
3437     VOID);
3438 
3439 __kernel_entry
3440 W32KAPI
3441 NTSTATUS
3442 APIENTRY
3443 NtGdiEngDeleteClip(
3444     _In_ CLIPOBJ*pco);
3445 
3446 __kernel_entry
3447 W32KAPI
3448 PVOID
3449 APIENTRY
3450 NtGdiBRUSHOBJ_pvAllocRbrush(
3451     _In_ BRUSHOBJ *pbo,
3452     _In_ ULONG cj);
3453 
3454 __kernel_entry
3455 W32KAPI
3456 PVOID
3457 APIENTRY
3458 NtGdiBRUSHOBJ_pvGetRbrush(
3459     _In_ BRUSHOBJ *pbo);
3460 
3461 __kernel_entry
3462 W32KAPI
3463 ULONG
3464 APIENTRY
3465 NtGdiBRUSHOBJ_ulGetBrushColor(
3466     _In_ BRUSHOBJ *pbo);
3467 
3468 __kernel_entry
3469 W32KAPI
3470 HANDLE
3471 APIENTRY
3472 NtGdiBRUSHOBJ_hGetColorTransform(
3473     _In_ BRUSHOBJ *pbo);
3474 
3475 __kernel_entry
3476 W32KAPI
3477 BOOL
3478 APIENTRY
3479 NtGdiXFORMOBJ_bApplyXform(
3480     _In_ XFORMOBJ *pxo,
3481     _In_ ULONG iMode,
3482     _In_ ULONG cPoints,
3483     _In_reads_(cPoints) PPOINTL pptIn,
3484     _Out_writes_(cPoints) PPOINTL pptOut);
3485 
3486 __kernel_entry
3487 W32KAPI
3488 ULONG
3489 APIENTRY
3490 NtGdiXFORMOBJ_iGetXform(
3491     _In_ XFORMOBJ *pxo,
3492     _Out_opt_ XFORML *pxform);
3493 
3494 __kernel_entry
3495 W32KAPI
3496 NTSTATUS
3497 APIENTRY
3498 NtGdiFONTOBJ_vGetInfo(
3499     _In_ FONTOBJ *pfo,
3500     _In_ ULONG cjSize,
3501     _Out_writes_bytes_(cjSize) FONTINFO *pfi);
3502 
3503 __kernel_entry
3504 W32KAPI
3505 ULONG
3506 APIENTRY
3507 NtGdiFONTOBJ_cGetGlyphs(
3508     _In_ FONTOBJ *pfo,
3509     _In_ ULONG iMode,
3510     _In_ ULONG cGlyph,
3511     _In_ HGLYPH *phg,
3512     _At_((GLYPHDATA**)ppvGlyph, _Outptr_) PVOID *ppvGlyph);
3513 
3514 __kernel_entry
3515 W32KAPI
3516 XFORMOBJ*
3517 APIENTRY
3518 NtGdiFONTOBJ_pxoGetXform(
3519     _In_ FONTOBJ *pfo);
3520 
3521 __kernel_entry
3522 W32KAPI
3523 IFIMETRICS*
3524 APIENTRY
3525 NtGdiFONTOBJ_pifi(
3526     _In_ FONTOBJ *pfo);
3527 
3528 __kernel_entry
3529 W32KAPI
3530 FD_GLYPHSET*
3531 APIENTRY
3532 NtGdiFONTOBJ_pfdg(
3533     _In_ FONTOBJ *pfo);
3534 
3535 __kernel_entry
3536 W32KAPI
3537 ULONG
3538 APIENTRY
3539 NtGdiFONTOBJ_cGetAllGlyphHandles(
3540     _In_ FONTOBJ *pfo,
3541     _Out_opt_ _Post_count_(return) HGLYPH *phg);
3542 
3543 __kernel_entry
3544 W32KAPI
3545 PVOID
3546 APIENTRY
3547 NtGdiFONTOBJ_pvTrueTypeFontFile(
3548     _In_ FONTOBJ *pfo,
3549     _Out_ ULONG *pcjFile);
3550 
3551 __kernel_entry
3552 W32KAPI
3553 PFD_GLYPHATTR
3554 APIENTRY
3555 NtGdiFONTOBJ_pQueryGlyphAttrs(
3556     _In_ FONTOBJ *pfo,
3557     _In_ ULONG iMode);
3558 
3559 __kernel_entry
3560 W32KAPI
3561 BOOL
3562 APIENTRY
3563 NtGdiSTROBJ_bEnum(
3564     _In_ STROBJ *pstro,
3565     _Out_ ULONG *pc,
3566     _Outptr_result_buffer_(*pc) PGLYPHPOS *ppgpos);
3567 
3568 __kernel_entry
3569 W32KAPI
3570 BOOL
3571 APIENTRY
3572 NtGdiSTROBJ_bEnumPositionsOnly(
3573     _In_ STROBJ *pstro,
3574     _Out_ ULONG *pc,
3575     _Outptr_result_buffer_(*pc) PGLYPHPOS *ppgpos);
3576 
3577 __kernel_entry
3578 W32KAPI
3579 NTSTATUS
3580 APIENTRY
3581 NtGdiSTROBJ_vEnumStart(
3582     _Inout_ STROBJ *pstro);
3583 
3584 __kernel_entry
3585 W32KAPI
3586 DWORD
3587 APIENTRY
3588 NtGdiSTROBJ_dwGetCodePage(
3589     _In_ STROBJ *pstro);
3590 
3591 __kernel_entry
3592 W32KAPI
3593 BOOL
3594 APIENTRY
3595 NtGdiSTROBJ_bGetAdvanceWidths(
3596     _In_ STROBJ*pstro,
3597     _In_ ULONG iFirst,
3598     _In_ ULONG c,
3599     _Out_writes_(c) POINTQF*pptqD);
3600 
3601 __kernel_entry
3602 W32KAPI
3603 FD_GLYPHSET*
3604 APIENTRY
3605 NtGdiEngComputeGlyphSet(
3606     _In_ INT nCodePage,
3607     _In_ INT nFirstChar,
3608     _In_ INT cChars);
3609 
3610 __kernel_entry
3611 W32KAPI
3612 ULONG
3613 APIENTRY
3614 NtGdiXLATEOBJ_iXlate(
3615     _In_ XLATEOBJ *pxlo,
3616     _In_ ULONG iColor);
3617 
3618 __kernel_entry
3619 W32KAPI
3620 HANDLE
3621 APIENTRY
3622 NtGdiXLATEOBJ_hGetColorTransform(
3623     _In_ XLATEOBJ *pxlo);
3624 
3625 __kernel_entry
3626 W32KAPI
3627 NTSTATUS
3628 APIENTRY
3629 NtGdiPATHOBJ_vGetBounds(
3630     _In_ PATHOBJ *ppo,
3631     _Out_ PRECTFX prectfx);
3632 
3633 __kernel_entry
3634 W32KAPI
3635 BOOL
3636 APIENTRY
3637 NtGdiPATHOBJ_bEnum(
3638     _In_ PATHOBJ *ppo,
3639     _Out_ PATHDATA *ppd);
3640 
3641 __kernel_entry
3642 W32KAPI
3643 NTSTATUS
3644 APIENTRY
3645 NtGdiPATHOBJ_vEnumStart(
3646     _In_ PATHOBJ *ppo);
3647 
3648 __kernel_entry
3649 W32KAPI
3650 NTSTATUS
3651 APIENTRY
3652 NtGdiEngDeletePath(
3653     _In_ PATHOBJ *ppo);
3654 
3655 __kernel_entry
3656 W32KAPI
3657 NTSTATUS
3658 APIENTRY
3659 NtGdiPATHOBJ_vEnumStartClipLines(
3660     _In_ PATHOBJ *ppo,
3661     _In_ CLIPOBJ *pco,
3662     _In_ SURFOBJ *pso,
3663     _In_ LINEATTRS *pla);
3664 
3665 __kernel_entry
3666 W32KAPI
3667 BOOL
3668 APIENTRY
3669 NtGdiPATHOBJ_bEnumClipLines(
3670     _In_ PATHOBJ *ppo,
3671     _In_ ULONG cb,
3672     _Out_writes_bytes_(cb) CLIPLINE *pcl);
3673 
3674 __kernel_entry
3675 W32KAPI
3676 BOOL
3677 APIENTRY
3678 NtGdiEngCheckAbort(
3679     _In_ SURFOBJ *pso);
3680 
3681 __kernel_entry
3682 W32KAPI
3683 DHPDEV
3684 APIENTRY
3685 NtGdiGetDhpdev(
3686     _In_ HDEV hdev);
3687 
3688 __kernel_entry
3689 W32KAPI
3690 LONG
3691 APIENTRY
3692 NtGdiHT_Get8BPPFormatPalette(
3693     _Out_opt_ _Post_count_(return) LPPALETTEENTRY pPaletteEntry,
3694     _In_ USHORT RedGamma,
3695     _In_ USHORT GreenGamma,
3696     _In_ USHORT BlueGamma);
3697 
3698 __kernel_entry
3699 W32KAPI
3700 LONG
3701 APIENTRY
3702 NtGdiHT_Get8BPPMaskPalette(
3703     _Out_opt_ _Post_count_(return) LPPALETTEENTRY pPaletteEntry,
3704     _In_ BOOL Use8BPPMaskPal,
3705     _In_ BYTE CMYMask,
3706     _In_ USHORT RedGamma,
3707     _In_ USHORT GreenGamma,
3708     _In_ USHORT BlueGamma);
3709 
3710 __kernel_entry
3711 W32KAPI
3712 BOOL
3713 APIENTRY
3714 NtGdiUpdateTransform(
3715     _In_ HDC hdc);
3716 
3717 __kernel_entry
3718 W32KAPI
3719 DWORD
3720 APIENTRY
3721 NtGdiSetLayout(
3722     _In_ HDC hdc,
3723     _In_ LONG wox,
3724     _In_ DWORD dwLayout);
3725 
3726 __kernel_entry
3727 W32KAPI
3728 BOOL
3729 APIENTRY
3730 NtGdiMirrorWindowOrg(
3731     _In_ HDC hdc);
3732 
3733 __kernel_entry
3734 W32KAPI
3735 LONG
3736 APIENTRY
3737 NtGdiGetDeviceWidth(
3738     _In_ HDC hdc);
3739 
3740 __kernel_entry
3741 W32KAPI
3742 NTSTATUS
3743 APIENTRY
3744 NtGdiSetUMPDSandboxState(
3745     _In_ BOOL bEnabled);
3746 
3747 __kernel_entry
3748 W32KAPI
3749 BOOL
3750 APIENTRY
3751 NtGdiSetPUMPDOBJ(
3752     _In_opt_ HUMPD humpd,
3753     _In_ BOOL bStoreID,
3754     _Inout_opt_ HUMPD *phumpd,
3755     _Out_opt_ BOOL *pbWOW64);
3756 
3757 __kernel_entry
3758 W32KAPI
3759 BOOL
3760 APIENTRY
3761 NtGdiBRUSHOBJ_DeleteRbrush(
3762     _In_opt_ BRUSHOBJ *pbo,
3763     _In_opt_ BRUSHOBJ *pboB);
3764 
3765 __kernel_entry
3766 W32KAPI
3767 BOOL
3768 APIENTRY
3769 NtGdiUMPDEngFreeUserMem(
3770     _In_ KERNEL_PVOID *ppv);
3771 
3772 __kernel_entry
3773 W32KAPI
3774 HBITMAP
3775 APIENTRY
3776 NtGdiSetBitmapAttributes(
3777     _In_ HBITMAP hbm,
3778     _In_ DWORD dwFlags);
3779 
3780 __kernel_entry
3781 W32KAPI
3782 HBITMAP
3783 APIENTRY
3784 NtGdiClearBitmapAttributes(
3785     _In_ HBITMAP hbm,
3786     _In_ DWORD dwFlags);
3787 
3788 __kernel_entry
3789 W32KAPI
3790 HBRUSH
3791 APIENTRY
3792 NtGdiSetBrushAttributes(
3793     _In_ HBRUSH hbm,
3794     _In_ DWORD dwFlags);
3795 
3796 __kernel_entry
3797 W32KAPI
3798 HBRUSH
3799 APIENTRY
3800 NtGdiClearBrushAttributes(
3801     _In_ HBRUSH hbm,
3802     _In_ DWORD dwFlags);
3803 
3804 __kernel_entry
3805 W32KAPI
3806 BOOL
3807 APIENTRY
3808 NtGdiDrawStream(
3809     _In_ HDC hdcDst,
3810     _In_ ULONG cjIn,
3811     _In_reads_bytes_(cjIn) VOID *pvIn);
3812 
3813 __kernel_entry
3814 W32KAPI
3815 BOOL
3816 APIENTRY
3817 NtGdiMakeObjectXferable(
3818     _In_ HANDLE h,
3819     _In_ DWORD dwProcessId);
3820 
3821 __kernel_entry
3822 W32KAPI
3823 BOOL
3824 APIENTRY
3825 NtGdiMakeObjectUnXferable(
3826     _In_ HANDLE h);
3827 
3828 #ifdef PRIVATE_DWM_INTERFACE
3829 
3830 __kernel_entry
3831 W32KAPI
3832 BOOL
3833 NtGdiSfmRegisterLogicalSurfaceForSignaling(
3834     _In_ HLSURF hlsurf,
3835     BOOL fSignalOnDirty);
3836 
3837 __kernel_entry
3838 W32KAPI
3839 BOOL
3840 NtGdiDwmGetHighColorMode(
3841     _Out_ DXGI_FORMAT* pdxgiFormat);
3842 
3843 __kernel_entry
3844 W32KAPI
3845 BOOL
3846 NtGdiDwmSetHighColorMode(
3847     _In_ DXGI_FORMAT dxgiFormat);
3848 
3849 __kernel_entry
3850 W32KAPI
3851 HANDLE
3852 NtGdiDwmCaptureScreen(
3853     _In_ const RECT* prcCapture,
3854     _In_ DXGI_FORMAT dxgiFormat);
3855 
3856 __kernel_entry
3857 W32KAPI
3858 NTSTATUS
3859 APIENTRY
3860 NtGdiDdCreateFullscreenSprite(
3861     _In_ HDC hdc,
3862     _In_ COLORREF crKey,
3863     _Out_ HANDLE* phSprite,
3864     _Out_ HDC* phdcSprite);
3865 
3866 __kernel_entry
3867 W32KAPI
3868 NTSTATUS
3869 APIENTRY
3870 NtGdiDdNotifyFullscreenSpriteUpdate(
3871     _In_ HDC hdc,
3872     _In_ HANDLE hSprite);
3873 
3874 __kernel_entry
3875 W32KAPI
3876 NTSTATUS
3877 APIENTRY
3878 NtGdiDdDestroyFullscreenSprite(
3879     _In_ HDC hdc,
3880     _In_ HANDLE hSprite);
3881 
3882 __kernel_entry
3883 W32KAPI
3884 ULONG
3885 APIENTRY
3886 NtGdiDdQueryVisRgnUniqueness(
3887     VOID);
3888 
3889 __kernel_entry
3890 W32KAPI
3891 BOOL
3892 APIENTRY
3893 NtGdiHLSurfGetInformation(
3894     _In_ HLSURF hlsurf,
3895     _In_ HLSURF_INFORMATION_CLASS InformationClass,
3896     _In_reads_bytes_opt_(*pcjInfoBuffer) PVOID pvInfoBuffer,
3897     _Inout_ PULONG pcjInfoBuffer);
3898 
3899 __kernel_entry
3900 W32KAPI
3901 BOOL
3902 APIENTRY
3903 NtGdiHLSurfSetInformation(
3904     _In_ HLSURF hlsurf,
3905     _In_ HLSURF_INFORMATION_CLASS InformationClass,
3906     _In_reads_bytes_opt_(cjInfoBuffer) PVOID pvInfoBuffer,
3907     _In_ ULONG cjInfoBuffer);
3908 
3909 __kernel_entry
3910 W32KAPI
3911 BOOL
3912 APIENTRY
3913 NtGdiDwmCreatedBitmapRemotingOutput(
3914     VOID);
3915 
3916 __kernel_entry
3917 W32KAPI
3918 NTSTATUS
3919 APIENTRY
3920 NtGdiGetCurrentDpiInfo(
3921     _In_ HMONITOR hmon,
3922     _Out_ PVOID pvStruct);
3923 
3924 #endif /* PRIVATE_DWM_INTERFACE */
3925 
3926 #endif /* _NTGDI_ */
3927