8 #define W32KAPI DECLSPEC_ADDRSAFE
11 #ifndef _WINDOWBLT_NOTIFICATION_
12 #define _WINDOWBLT_NOTIFICATION_
15 #define TRACE_SURFACE_ALLOCS (DBG || 0)
17 /* NtGdiGetLinkedUfis */
18 #define FL_UFI_PRIVATEFONT 1
19 #define FL_UFI_DESIGNVECTOR_PFF 2
20 #define FL_UFI_MEMORYFONT 4
23 #define ICM_SET_MODE 1
24 #define ICM_SET_CALIBRATE_MODE 2
25 #define ICM_SET_COLOR_MODE 3
26 #define ICM_CHECK_COLOR_MODE 4
28 /* NtGdiCreateColorSpace */
29 #define LCSEX_ANSICREATED 1
30 #define LCSEX_TEMPPROFILE 2
33 #define GS_NUM_OBJS_ALL 0
34 #define GS_HANDOBJ_CURRENT 1
35 #define GS_HANDOBJ_MAX 2
36 #define GS_HANDOBJ_ALLOC 3
37 #define GS_LOOKASIDE_INFO 4
39 /* NtGdiEnumFontOpen */
40 #define TYPE_ENUMFONTS 1
41 #define TYPE_ENUMFONTFAMILIES 2
42 #define TYPE_ENUMFONTFAMILIESEX 3
44 typedef enum _COLORPALETTEINFO
48 } COLORPALETTEINFO
, *PCOLORPALETTEINFO
;
50 /* NtGdiIcmBrushInfo */
51 typedef enum _ICM_DIB_INFO_CMD
55 } ICM_DIB_INFO
, *PICM_DIB_INFO
;
57 /* NtGdiCreateColorSpace */
58 typedef struct _LOGCOLORSPACEEXW
60 LOGCOLORSPACEW lcsColorSpace
;
62 } LOGCOLORSPACEEXW
, *PLOGCOLORSPACEEXW
;
64 typedef struct _POLYPATBLT
71 } POLYPATBLT
, *PPOLYPATBLT
;
73 /* NtGdiAddRemoteMMInstanceToDC */
74 typedef struct tagDOWNLOADDESIGNVECTOR
76 UNIVERSAL_FONT_ID ufiBase
;
78 } DOWNLOADDESIGNVECTOR
;
88 NtGdiSetDIBitsToDeviceInternal(
96 _In_ DWORD iStartScan
,
98 _In_reads_bytes_(cjMaxBits
) LPBYTE pInitBits
,
99 _In_reads_bytes_(cjMaxInfo
) LPBITMAPINFO pbmi
,
103 _In_ BOOL bTransformCoordinates
,
104 _In_opt_ HANDLE hcmXform
110 NtGdiGetFontResourceInfoInternalW(
111 _In_reads_z_(cwc
) LPWSTR pwszFiles
,
115 _Out_ LPDWORD pdwBytes
,
116 _Out_writes_bytes_(cjBuf
) LPVOID pvBuf
,
123 NtGdiGetGlyphIndicesW(
125 IN OPTIONAL LPWSTR pwc
,
127 OUT OPTIONAL LPWORD pgi
,
134 NtGdiGetGlyphIndicesWInternal(
136 IN OPTIONAL LPWSTR pwc
,
138 OUT OPTIONAL LPWORD pgi
,
146 NtGdiCreatePaletteInternal(
147 IN LPLOGPALETTE pLogPal
,
155 _In_ ARCTYPE arctype
,
169 NtGdiStretchDIBitsInternal(
179 _In_opt_ LPBYTE pjInit
,
180 _In_ LPBITMAPINFO pbmi
,
185 _In_opt_ HANDLE hcmXform
);
190 NtGdiGetOutlineTextMetricsInternalW(
193 _Out_opt_ OUTLINETEXTMETRICW
*potmw
,
196 _Success_(return != FALSE
)
200 NtGdiGetAndSetDCDword(
204 _Out_ DWORD
*pdwResult
);
225 _Out_ LPWSTR pszMonitorID
);
232 OUT OPTIONAL PUNIVERSAL_FONT_ID pufiLinkedUFIs
,
241 IN PUNIVERSAL_FONT_ID pufiLinks
,
250 OUT PUNIVERSAL_FONT_ID pufi
,
251 OUT OPTIONAL DESIGNVECTOR
*pdv
,
253 OUT ULONG
*pulBaseCheckSum
,
260 NtGdiForceUFIMapping(
262 IN PUNIVERSAL_FONT_ID pufi
269 IN PUNIVERSAL_FONT_ID pufi
,
270 OUT OPTIONAL ULONG
* pcwc
,
271 OUT OPTIONAL LPWSTR pwszPathname
,
272 OUT OPTIONAL ULONG
* pcNumFiles
,
274 OUT OPTIONAL BOOL
*pbMemFont
,
275 OUT OPTIONAL ULONG
*pcjView
,
276 OUT OPTIONAL PVOID pvView
,
277 OUT OPTIONAL BOOL
*pbTTC
,
278 OUT OPTIONAL ULONG
*piTTC
284 NtGdiAddRemoteFontToDC(
288 IN OPTIONAL PUNIVERSAL_FONT_ID pufi
294 NtGdiAddFontMemResourceEx(
297 IN DESIGNVECTOR
*pdv
,
305 NtGdiRemoveFontMemResourceEx(
306 _In_ HANDLE hMMFont
);
317 NtGdiRemoveMergeFont(
319 IN UNIVERSAL_FONT_ID
*pufi
325 NtGdiAnyLinkedFonts(VOID
);
332 OUT PUNIVERSAL_FONT_ID pufi
,
333 OUT OPTIONAL DESIGNVECTOR
*pdv
,
335 OUT ULONG
*pulBaseCheckSum
,
337 OUT KERNEL_PVOID
*embFontID
343 NtGdiGetEmbedFonts(VOID
);
348 NtGdiChangeGhostFont(
349 IN KERNEL_PVOID
*pfontID
,
384 _When_((iFunc
== GdiPalGetEntries
) || (iFunc
== GdiPalGetSystemEntries
), _Out_writes_bytes_(cEntries
*sizeof(PALETTEENTRY
)))
385 _When_((iFunc
!= GdiPalGetEntries
) && (iFunc
!= GdiPalGetSystemEntries
), _In_reads_bytes_(cEntries
*sizeof(PALETTEENTRY
))) LPVOID pEntries
,
392 NtGdiComputeXformCoefficients(
404 OUT OPTIONAL WIDTHDATA
*pwd
,
408 _Success_(return != 0)
412 NtGdiDescribePixelFormat(
416 _When_(cjpfd
!= 0, _Out_
) PPIXELFORMATDESCRIPTOR ppfd
);
434 NtGdiSetupPublicCFONT(
436 IN OPTIONAL HFONT hf
,
443 NtGdiDxgGenericThunk(
444 _In_ ULONG_PTR ulIndex
,
445 _In_ ULONG_PTR ulHandle
,
446 IN OUT SIZE_T
*pdwSizeOfPtr1
,
448 IN OUT SIZE_T
*pdwSizeOfPtr2
,
455 NtGdiDdAddAttachedSurface(
456 _In_ HANDLE hSurface
,
457 _In_ HANDLE hSurfaceAttached
,
458 IN OUT PDD_ADDATTACHEDSURFACEDATA puAddAttachedSurfaceData
464 NtGdiDdAttachSurface(
465 _In_ HANDLE hSurfaceFrom
,
466 _In_ HANDLE hSurfaceTo
);
472 _In_ HANDLE hSurfaceDest
,
473 _In_ HANDLE hSurfaceSrc
,
474 IN OUT PDD_BLTDATA puBltData
480 NtGdiDdCanCreateSurface(
481 _In_ HANDLE hDirectDraw
,
482 IN OUT PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
489 _In_ HANDLE hSurface
,
490 IN OUT PDD_COLORCONTROLDATA puColorControlData
496 NtGdiDdCreateDirectDrawObject(
502 NtGdiDdCreateSurface(
503 _In_ HANDLE hDirectDraw
,
505 IN OUT DDSURFACEDESC
* puSurfaceDescription
,
506 IN OUT DD_SURFACE_GLOBAL
* puSurfaceGlobalData
,
507 IN OUT DD_SURFACE_LOCAL
* puSurfaceLocalData
,
508 IN OUT DD_SURFACE_MORE
* puSurfaceMoreData
,
509 IN OUT DD_CREATESURFACEDATA
* puCreateSurfaceData
,
510 OUT HANDLE
* puhSurface
516 NtGdiDdCreateSurfaceObject(
517 _In_ HANDLE hDirectDrawLocal
,
518 _In_ HANDLE hSurface
,
519 IN PDD_SURFACE_LOCAL puSurfaceLocal
,
520 IN PDD_SURFACE_MORE puSurfaceMore
,
521 IN PDD_SURFACE_GLOBAL puSurfaceGlobal
,
528 NtGdiDdDeleteSurfaceObject(
529 _In_ HANDLE hSurface
);
534 NtGdiDdDeleteDirectDrawObject(
535 _In_ HANDLE hDirectDrawLocal
);
540 NtGdiDdDestroySurface(
541 _In_ HANDLE hSurface
,
542 _In_ BOOL bRealDestroy
);
548 _In_ HANDLE hSurfaceCurrent
,
549 _In_ HANDLE hSurfaceTarget
,
550 _In_ HANDLE hSurfaceCurrentLeft
,
551 _In_ HANDLE hSurfaceTargetLeft
,
552 IN OUT PDD_FLIPDATA puFlipData
558 NtGdiDdGetAvailDriverMemory(
559 _In_ HANDLE hDirectDraw
,
560 IN OUT PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData
567 _In_ HANDLE hSurface
,
568 IN OUT PDD_GETBLTSTATUSDATA puGetBltStatusData
575 _In_ HANDLE hSurface
,
576 IN PALETTEENTRY
* puColorTable
582 NtGdiDdGetDriverInfo(
583 _In_ HANDLE hDirectDraw
,
584 IN OUT PDD_GETDRIVERINFODATA puGetDriverInfoData
590 NtGdiDdGetFlipStatus(
591 _In_ HANDLE hSurface
,
592 IN OUT PDD_GETFLIPSTATUSDATA puGetFlipStatusData
599 _In_ HANDLE hDirectDraw
,
600 IN OUT PDD_GETSCANLINEDATA puGetScanLineData
606 NtGdiDdSetExclusiveMode(
607 _In_ HANDLE hDirectDraw
,
608 IN OUT PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData
614 NtGdiDdFlipToGDISurface(
615 _In_ HANDLE hDirectDraw
,
616 IN OUT PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData
623 _In_ HANDLE hSurface
,
624 IN OUT PDD_LOCKDATA puLockData
,
631 NtGdiDdQueryDirectDrawObject(
632 _In_ HANDLE hDirectDrawLocal
,
633 OUT PDD_HALINFO pHalInfo
,
634 OUT DWORD
* pCallBackFlags
,
635 OUT OPTIONAL LPD3DNTHAL_CALLBACKS puD3dCallbacks
,
636 OUT OPTIONAL LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData
,
637 OUT OPTIONAL PDD_D3DBUFCALLBACKS puD3dBufferCallbacks
,
638 OUT OPTIONAL LPDDSURFACEDESC puD3dTextureFormats
,
639 OUT DWORD
* puNumHeaps
,
640 OUT OPTIONAL VIDEOMEMORY
* puvmList
,
641 OUT DWORD
* puNumFourCC
,
642 OUT OPTIONAL DWORD
* puFourCC
648 NtGdiDdReenableDirectDrawObject(
649 _In_ HANDLE hDirectDrawLocal
,
650 IN OUT BOOL
* pubNewMode
657 _In_ HANDLE hSurface
);
663 _In_ HANDLE hSurface
,
670 _In_ HANDLE hSurface
,
671 IN OUT PDD_SETCOLORKEYDATA puSetColorKeyData
677 NtGdiDdSetOverlayPosition(
678 _In_ HANDLE hSurfaceSource
,
679 _In_ HANDLE hSurfaceDestination
,
680 IN OUT PDD_SETOVERLAYPOSITIONDATA puSetOverlayPositionData
686 NtGdiDdUnattachSurface(
687 _In_ HANDLE hSurface
,
688 _In_ HANDLE hSurfaceAttached
695 _In_ HANDLE hSurface
,
696 IN OUT PDD_UNLOCKDATA puUnlockData
702 NtGdiDdUpdateOverlay(
703 _In_ HANDLE hSurfaceDestination
,
704 _In_ HANDLE hSurfaceSource
,
705 IN OUT PDD_UPDATEOVERLAYDATA puUpdateOverlayData
711 NtGdiDdWaitForVerticalBlank(
712 _In_ HANDLE hDirectDraw
,
713 IN OUT PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData
720 _In_opt_ HANDLE hDirectDraw
,
721 _In_opt_ HANDLE hSurface
,
728 _In_ HANDLE hDirectDraw
,
730 _In_ LPVOID lpGammaRamp
);
736 _In_ HANDLE hSurface
,
737 IN OUT PDD_LOCKDATA puLockData
744 _In_ HANDLE hSurface
,
745 IN OUT PDD_UNLOCKDATA puUnlockData
751 NtGdiDdCreateD3DBuffer(
752 _In_ HANDLE hDirectDraw
,
753 IN OUT HANDLE
* hSurface
,
754 IN OUT DDSURFACEDESC
* puSurfaceDescription
,
755 IN OUT DD_SURFACE_GLOBAL
* puSurfaceGlobalData
,
756 IN OUT DD_SURFACE_LOCAL
* puSurfaceLocalData
,
757 IN OUT DD_SURFACE_MORE
* puSurfaceMoreData
,
758 IN OUT DD_CREATESURFACEDATA
* puCreateSurfaceData
,
759 IN OUT HANDLE
* puhSurface
765 NtGdiDdCanCreateD3DBuffer(
766 _In_ HANDLE hDirectDraw
,
767 IN OUT PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
773 NtGdiDdDestroyD3DBuffer(
774 _In_ HANDLE hSurface
);
779 NtGdiD3dContextCreate(
780 _In_ HANDLE hDirectDrawLocal
,
781 _In_ HANDLE hSurfColor
,
783 IN OUT D3DNTHAL_CONTEXTCREATEI
*pdcci
789 NtGdiD3dContextDestroy(
790 IN LPD3DNTHAL_CONTEXTDESTROYDATA pdcdd
796 NtGdiD3dContextDestroyAll(
797 OUT LPD3DNTHAL_CONTEXTDESTROYALLDATA pdcdad
803 NtGdiD3dValidateTextureStageState(
804 IN OUT LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData
810 NtGdiD3dDrawPrimitives2(
813 IN OUT LPD3DNTHAL_DRAWPRIMITIVES2DATA pded
,
814 IN OUT FLATPTR
* pfpVidMemCmd
,
815 IN OUT DWORD
* pdwSizeCmd
,
816 IN OUT FLATPTR
* pfpVidMemVtx
,
817 IN OUT DWORD
* pdwSizeVtx
823 NtGdiDdGetDriverState(
824 IN OUT PDD_GETDRIVERSTATEDATA pdata
830 NtGdiDdCreateSurfaceEx(
831 _In_ HANDLE hDirectDraw
,
832 _In_ HANDLE hSurface
,
833 _In_ DWORD dwSurfaceHandle
839 NtGdiDvpCanCreateVideoPort(
840 _In_ HANDLE hDirectDraw
,
841 IN OUT PDD_CANCREATEVPORTDATA puCanCreateVPortData
847 NtGdiDvpColorControl(
848 _In_ HANDLE hVideoPort
,
849 IN OUT PDD_VPORTCOLORDATA puVPortColorData
855 NtGdiDvpCreateVideoPort(
856 _In_ HANDLE hDirectDraw
,
857 IN OUT PDD_CREATEVPORTDATA puCreateVPortData
863 NtGdiDvpDestroyVideoPort(
864 _In_ HANDLE hVideoPort
,
865 IN OUT PDD_DESTROYVPORTDATA puDestroyVPortData
871 NtGdiDvpFlipVideoPort(
872 _In_ HANDLE hVideoPort
,
873 _In_ HANDLE hDDSurfaceCurrent
,
874 _In_ HANDLE hDDSurfaceTarget
,
875 IN OUT PDD_FLIPVPORTDATA puFlipVPortData
881 NtGdiDvpGetVideoPortBandwidth(
882 _In_ HANDLE hVideoPort
,
883 IN OUT PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData
889 NtGdiDvpGetVideoPortField(
890 _In_ HANDLE hVideoPort
,
891 IN OUT PDD_GETVPORTFIELDDATA puGetVPortFieldData
897 NtGdiDvpGetVideoPortFlipStatus(
898 _In_ HANDLE hDirectDraw
,
899 IN OUT PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData
905 NtGdiDvpGetVideoPortInputFormats(
906 _In_ HANDLE hVideoPort
,
907 IN OUT PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData
913 NtGdiDvpGetVideoPortLine(
914 _In_ HANDLE hVideoPort
,
915 IN OUT PDD_GETVPORTLINEDATA puGetVPortLineData
921 NtGdiDvpGetVideoPortOutputFormats(
922 _In_ HANDLE hVideoPort
,
923 IN OUT PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData
929 NtGdiDvpGetVideoPortConnectInfo(
930 _In_ HANDLE hDirectDraw
,
931 IN OUT PDD_GETVPORTCONNECTDATA puGetVPortConnectData
937 NtGdiDvpGetVideoSignalStatus(
938 _In_ HANDLE hVideoPort
,
939 IN OUT PDD_GETVPORTSIGNALDATA puGetVPortSignalData
945 NtGdiDvpUpdateVideoPort(
946 _In_ HANDLE hVideoPort
,
947 IN HANDLE
* phSurfaceVideo
,
948 IN HANDLE
* phSurfaceVbi
,
949 IN OUT PDD_UPDATEVPORTDATA puUpdateVPortData
955 NtGdiDvpWaitForVideoPortSync(
956 _In_ HANDLE hVideoPort
,
957 IN OUT PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData
963 NtGdiDvpAcquireNotification(
964 _In_ HANDLE hVideoPort
,
965 IN OUT HANDLE
* hEvent
,
966 IN LPDDVIDEOPORTNOTIFY pNotify
972 NtGdiDvpReleaseNotification(
973 _In_ HANDLE hVideoPort
,
979 NtGdiDdGetMoCompGuids(
980 _In_ HANDLE hDirectDraw
,
981 IN OUT PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData
987 NtGdiDdGetMoCompFormats(
988 _In_ HANDLE hDirectDraw
,
989 IN OUT PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData
995 NtGdiDdGetMoCompBuffInfo(
996 _In_ HANDLE hDirectDraw
,
997 IN OUT PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData
1003 NtGdiDdGetInternalMoCompInfo(
1004 _In_ HANDLE hDirectDraw
,
1005 IN OUT PDD_GETINTERNALMOCOMPDATA puGetInternalData
1011 NtGdiDdCreateMoComp(
1012 _In_ HANDLE hDirectDraw
,
1013 IN OUT PDD_CREATEMOCOMPDATA puCreateMoCompData
1019 NtGdiDdDestroyMoComp(
1020 _In_ HANDLE hMoComp
,
1021 IN OUT PDD_DESTROYMOCOMPDATA puDestroyMoCompData
1027 NtGdiDdBeginMoCompFrame(
1028 _In_ HANDLE hMoComp
,
1029 IN OUT PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData
1035 NtGdiDdEndMoCompFrame(
1036 _In_ HANDLE hMoComp
,
1037 IN OUT PDD_ENDMOCOMPFRAMEDATA puEndFrameData
1043 NtGdiDdRenderMoComp(
1044 _In_ HANDLE hMoComp
,
1045 IN OUT PDD_RENDERMOCOMPDATA puRenderMoCompData
1051 NtGdiDdQueryMoCompStatus(
1052 _In_ HANDLE hMoComp
,
1053 IN OUT PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData
1060 _In_ HANDLE hSurfaceDest
,
1061 _In_opt_ HANDLE hSurfaceSrc
,
1062 IN OUT PDD_BLTDATA puBltData
1079 _In_ BLENDFUNCTION BlendFunction
,
1080 _In_ HANDLE hcmXform
);
1087 _In_ PTRIVERTEX pVertex
,
1098 _In_ ULONG nCommand
,
1104 NtGdiCreateColorSpace(
1105 _In_ PLOGCOLORSPACEEXW pLogColorSpace
);
1110 NtGdiDeleteColorSpace(
1111 _In_ HANDLE hColorSpace
);
1118 _In_ HCOLORSPACE hColorSpace
);
1123 NtGdiCreateColorTransform(
1125 _In_ LPLOGCOLORSPACEW pLogColorSpaceW
,
1126 _In_reads_bytes_opt_(cjSrcProfile
) PVOID pvSrcProfile
,
1127 _In_ ULONG cjSrcProfile
,
1128 _In_reads_bytes_opt_(cjDestProfile
) PVOID pvDestProfile
,
1129 _In_ ULONG cjDestProfile
,
1130 _In_reads_bytes_opt_(cjTargetProfile
) PVOID pvTargetProfile
,
1131 _In_ ULONG cjTargetProfile
);
1136 NtGdiDeleteColorTransform(
1138 _In_ HANDLE hColorTransform
);
1143 NtGdiCheckBitmapBits(
1145 _In_ HANDLE hColorTransform
,
1147 _In_ ULONG bmFormat
,
1149 _In_ DWORD dwHeight
,
1150 _In_ DWORD dwStride
,
1157 NtGdiColorCorrectPalette(
1160 _In_ ULONG FirstEntry
,
1161 _In_ ULONG NumberOfEntries
,
1162 IN OUT PALETTEENTRY
*ppalEntry
,
1169 NtGdiGetColorSpaceforBitmap(
1170 _In_ HBITMAP hsurf
);
1172 _Success_(return != FALSE
)
1176 NtGdiGetDeviceGammaRamp(
1178 _Out_writes_bytes_(sizeof(GAMMARAMP
)) LPVOID lpGammaRamp
);
1183 NtGdiSetDeviceGammaRamp(
1185 _In_reads_bytes_(sizeof(GAMMARAMP
)) LPVOID lpGammaRamp
);
1193 IN OUT PBITMAPINFO pbmiDIB
,
1194 IN OUT PVOID pvBits
,
1195 IN OUT ULONG
*pulBits
,
1196 OUT OPTIONAL DWORD
*piUsage
,
1197 OUT OPTIONAL BOOL
*pbAlreadyTran
,
1209 NtGdiCreateMetafileDC(
1222 NtGdiCreateClientObj(
1228 NtGdiDeleteClientObj(
1237 OUT OPTIONAL PBYTE pjOut
1243 NtGdiDeleteObjectApp(
1251 OUT OPTIONAL LPPOINT pptlBuf
,
1252 OUT OPTIONAL LPBYTE pjTypes
,
1259 NtGdiCreateCompatibleDC(
1265 NtGdiCreateDIBitmapInternal(
1270 _In_opt_ LPBYTE pjInit
,
1271 _In_opt_ LPBITMAPINFO pbmi
,
1273 _In_ UINT cjMaxInitInfo
,
1274 _In_ UINT cjMaxBits
,
1276 _In_ HANDLE hcmXform
);
1281 NtGdiCreateDIBSection(
1283 _In_opt_ HANDLE hSectionApp
,
1284 _In_ DWORD dwOffset
,
1285 _In_ LPBITMAPINFO pbmi
,
1289 _In_ ULONG_PTR dwColorSpace
,
1290 _Out_opt_ PVOID
*ppvBits
);
1295 NtGdiCreateSolidBrush(
1297 _In_opt_ HBRUSH hbr
);
1302 NtGdiCreateDIBBrush(
1308 _In_ PVOID pClient
);
1313 NtGdiCreatePatternBrushInternal(
1321 NtGdiCreateHatchBrushInternal(
1330 _In_ ULONG flPenStyle
,
1332 _In_ ULONG iBrushStyle
,
1334 _In_ ULONG_PTR lClientHatch
,
1335 _In_ ULONG_PTR lHatch
,
1337 _In_opt_ PULONG pulStyle
,
1339 _In_ BOOL bOldStylePen
,
1340 _In_opt_ HBRUSH hbrush
);
1345 NtGdiCreateEllipticRgn(
1354 NtGdiCreateRoundRectRgn(
1365 NtGdiCreateServerMetaFile(
1368 _In_reads_bytes_(cjData
) LPBYTE pjData
,
1376 NtGdiExtCreateRegion(
1377 _In_opt_ LPXFORM px
,
1379 _In_ LPRGNDATA prgn
);
1386 _Out_writes_bytes_(cjFontDir
) PBYTE pjFontDir
,
1387 _In_
unsigned cjFontDir
,
1388 _In_z_bytecount_(cjPathname
) LPWSTR pwszPathname
,
1389 _In_
unsigned cjPathname
);
1396 _In_count_(cpt
) LPPOINT ppt
,
1397 _In_count_(cpt
) LPBYTE pjAttr
,
1405 _In_ POLYTEXTW
*pptw
,
1407 _In_ DWORD dwCodePage
);
1412 NtGdiGetServerMetaFileBits(
1415 OUT OPTIONAL LPBYTE pjData
,
1429 _Must_inspect_result_
1433 NtGdiGetBitmapDimension(
1435 _When_(return != FALSE
, _Out_
) LPSIZE psize
);
1440 NtGdiGetNearestPaletteIndex(
1442 _In_ COLORREF crColor
);
1462 NtGdiRemoveFontResourceW(
1463 _In_z_count_(cwc
) WCHAR
*pwszFiles
,
1467 _In_ DWORD dwPidTid
,
1468 _In_opt_ DESIGNVECTOR
*pdv
);
1480 NtGdiSetBitmapDimension(
1484 _In_opt_ LPSIZE psizeOut
);
1503 NtGdiSetTextJustification(
1505 _In_ INT lBreakExtra
,
1518 NtGdiGetTextExtentExW(
1520 IN OPTIONAL LPWSTR lpwsz
,
1523 OUT OPTIONAL ULONG
*pcCh
,
1524 OUT OPTIONAL PULONG pdxOut
,
1532 NtGdiGetCharABCWidthsW(
1536 IN OPTIONAL PWCHAR pwch
,
1544 NtGdiGetCharacterPlacementW(
1548 _In_ INT nMaxExtent
,
1549 IN OUT LPGCP_RESULTSW pgcpw
,
1560 _In_ DWORD dwRadius
,
1561 _In_ DWORD dwStartAngle
,
1562 _In_ DWORD dwSweepAngle
);
1573 NtGdiSelectClipPath(
1604 NtGdiStrokeAndFillPath(
1628 NtGdiFlushUserBatch(VOID
);
1642 _Out_opt_ PDWORD pdwOut
);
1649 _In_ DWORD dwxScale
,
1650 _In_ DWORD dwyScale
);
1652 _Success_(return != FALSE
)
1658 _Out_ PDWORD pdwOut
);
1697 _In_ LPPOINT pptlTrg
,
1703 _In_ HBITMAP hbmMask
,
1706 _In_ DWORD crBackColor
);
1720 _In_opt_ HBITMAP hbmMask
,
1724 _In_ DWORD crBackColor
);
1733 _In_ COLORREF crColor
,
1734 _In_ UINT iFillType
);
1742 _In_ HBRUSH hbrush
);
1761 _In_ COLORREF crColor
);
1789 OUT BOOL
*pbBanding
,
1818 IN OPTIONAL PWCHAR pwc
,
1826 NtGdiGetCharWidthInfo(
1828 OUT PCHWIDTHINFO pChWidthInfo
1838 IN OPTIONAL LPSTR pjIn
1846 IN OPTIONAL PWCHAR pDriver
,
1850 IN OPTIONAL LPSTR pjIn
,
1852 OUT OPTIONAL LPSTR pjOut
1861 _In_ DWORD dwOffset
,
1862 OUT OPTIONAL PVOID pvBuf
,
1869 NtGdiGetGlyphOutline(
1873 OUT LPGLYPHMETRICS pgm
,
1875 OUT OPTIONAL PVOID pvBuf
,
1877 _In_ BOOL bIgnoreRotation
1885 OUT EXTTEXTMETRIC
*petm
1891 NtGdiGetRasterizerCaps(
1892 OUT LPRASTERIZER_STATUS praststat
,
1899 NtGdiGetKerningPairs(
1902 OUT OPTIONAL KERNINGPAIR
*pkpDst
1914 NtGdiGetObjectBitmapHandle(
1924 _In_ INT iObjectType
,
1926 OUT OPTIONAL PVOID pvBuf
1932 // The exact size of the buffer at pdm is pdm->dmSize + pdm->dmDriverExtra.
1933 // But this can't be specified with current annotation language.
1935 // typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;
1943 _In_ LPDEVMODEW pdm
,
1944 OUT PBOOL pbBanding
,
1945 IN OPTIONAL VOID
*pDriverInfo2
, // this is "typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;"
1946 OUT VOID
*ppUMdhpdev
1960 NtGdiGetColorAdjustment(
1962 _Out_ PCOLORADJUSTMENT pcaOut
);
1967 NtGdiSetColorAdjustment(
1969 _In_ PCOLORADJUSTMENT pca
);
1981 IN OPTIONAL PUNICODE_STRING pustrDevice
,
1982 IN DEVMODEW
*pdm
, // See note for NtGdiResetDC
1983 IN PUNICODE_STRING pustrLogAddr
,
1986 IN OPTIONAL HANDLE hspool
,
1987 IN OPTIONAL VOID
*pDriverInfo2
, // this is "typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;"
2000 _Success_(return!=FALSE
)
2007 _Out_ PPOINTL pptOut
);
2012 NtGdiScaleViewportExtEx(
2018 OUT OPTIONAL LPSIZE pszOut
2024 NtGdiScaleWindowExtEx(
2030 OUT OPTIONAL LPSIZE pszOut
2036 NtGdiSetVirtualResolution(
2038 _In_ INT cxVirtualDevicePixel
,
2039 _In_ INT cyVirtualDevicePixel
,
2040 _In_ INT cxVirtualDeviceMm
,
2041 _In_ INT cyVirtualDeviceMm
);
2048 _In_ INT cxVirtualDevice
,
2049 _In_ INT cyVirtualDevice
);
2051 _Success_(return !=FALSE
)
2063 NtGdiModifyWorldTransform(
2065 _In_opt_ LPXFORM pxf
,
2071 NtGdiCombineTransform(
2072 _Out_ LPXFORM pxfDst
,
2073 _In_ LPXFORM pxfSrc1
,
2074 _In_ LPXFORM pxfSrc2
);
2079 NtGdiTransformPoints(
2081 _In_reads_(c
) PPOINT pptIn
,
2082 _Out_writes_(c
) PPOINT pptOut
,
2089 NtGdiConvertMetafileRect(
2091 _Inout_ PRECTL prect
);
2096 NtGdiGetTextCharsetInfo(
2098 OUT OPTIONAL LPFONTSIGNATURE lpSig
,
2115 NtGdiGetPerBandInfo(
2117 IN OUT PERBANDINFO
*ppbi
2124 _In_ HANDLE hProcess
,
2128 _In_ UINT cjResultSize
2134 NtGdiSetMagicColors(
2136 IN PALETTEENTRY peMagic
,
2172 NtGdiExtSelectClipRgn(
2186 #ifdef _WINDOWBLT_NOTIFICATION_
2200 _In_ DWORD crBackColor
,
2216 _In_ DWORD crBackColor
);
2224 _In_ RECTL
*prectDst
,
2226 _In_ RECTL
*prectSrc
,
2227 _In_ POINTL
*pptlOrigin
,
2229 _In_ DWORD crBackColor
);
2234 NtGdiTransparentBlt(
2245 _In_ COLORREF TransColor
);
2252 _In_z_count_(cwc
) LPWSTR lpwsz
,
2257 _Success_(return != FALSE
)
2261 NtGdiGetTextMetricsW(
2263 _Out_bytecap_(cj
) TMW_INTERNAL
* ptm
,
2272 OUT OPTIONAL LPWSTR pszOut
,
2273 _In_ BOOL bAliasName
2292 IN OPTIONAL LPRECT prcl
,
2293 _In_z_count_(cwc
) LPWSTR pwsz
,
2295 IN OPTIONAL LPINT pdx
,
2296 _In_ DWORD dwCodePage
2302 NtGdiIntersectClipRect(
2335 _In_ PPOLYPATBLT pPoly
,
2342 NtGdiUnrealizeObject(
2348 NtGdiGetStockObject(
2354 NtGdiCreateCompatibleBitmap(
2367 _Success_(return != FALSE
)
2375 _Out_opt_ LPPOINT pptOut
);
2377 _Success_(return != 0)
2384 _Out_opt_bytecap_(cj
) LPVOID pvOut
);
2393 _Success_(return!=FALSE
)
2397 NtGdiGetDeviceCapsAll (
2399 _Out_ PDEVCAPS pDevCaps
);
2416 _In_ DWORD dwBackColor
);
2418 _Success_(return != FALSE
)
2426 _Out_opt_ LPPOINT pptOut
);
2436 _In_opt_ LPBYTE pjInit
);
2441 NtGdiCreateHalftonePalette(
2454 NtGdiExcludeClipRect(
2473 _In_opt_ HRGN hrgnSrc2
,
2492 _In_bytecount_(cj
) PBYTE pjInit
);
2497 NtGdiGetDIBitsInternal(
2500 _In_ UINT iStartScan
,
2502 _Out_opt_ LPBYTE pBits
,
2503 _Inout_ LPBITMAPINFO pbmi
,
2505 _In_ UINT cjMaxBits
,
2506 _In_ UINT cjMaxInfo
);
2516 _Success_(return!=ERROR
)
2522 _Out_ LPRECT prcOut
);
2532 _Success_(return!=0)
2552 NtGdiGetNearestColor(
2559 NtGdiGetSystemPaletteUse(
2565 NtGdiSetSystemPaletteUse(
2569 _Success_(return!=0)
2575 _In_ ULONG cjBuffer
,
2576 _Out_opt_bytecap_(cjBuffer
) LPRGNDATA lpRgnData
);
2588 NtGdiAddFontResourceW(
2589 _In_z_count_(cwc
) WCHAR
*pwszFiles
,
2593 _In_ DWORD dwPidTid
,
2594 _In_opt_ DESIGNVECTOR
*pdv
);
2596 #if (_WIN32_WINNT >= 0x0500)
2601 _In_bytecount_(cjElfw
) ENUMLOGFONTEXDVW
*pelfw
,
2605 _In_ PVOID pvCliData
);
2611 _In_bytecount_(cjElfw
) LPEXTLOGFONTW pelfw
,
2615 _In_ PVOID pvCliData
2622 NtGdiSetFontEnumeration(
2629 _In_ ULONG_PTR idEnum
);
2631 #if (_WIN32_WINNT >= 0x0500)
2637 _In_ ULONG_PTR idEnum
,
2640 OUT PENUMFONTDATAW pefdw
2649 _In_ ULONG iEnumType
,
2650 _In_ FLONG flWin31Compat
,
2652 IN OPTIONAL LPWSTR pwszFaceName
,
2653 _In_ ULONG lfCharSet
,
2661 OUT PUNIVERSAL_FONT_ID pufiFontList
,
2662 _In_ ULONG nBufferSize
,
2663 OUT PLARGE_INTEGER pTimeStamp
2669 NtGdiConsoleTextOut(
2671 _In_ POLYTEXTW
*lpto
,
2673 _In_ RECTL
*prclBounds
);
2678 NtGdiFullscreenControl(
2679 IN FULLSCREENCONTROL FullscreenCommand
,
2680 IN PVOID FullscreenInput
,
2681 _In_ DWORD FullscreenInputLength
,
2682 OUT PVOID FullscreenOutput
,
2683 IN OUT PULONG FullscreenOutputLength
2701 NtGdiEudcLoadUnloadLink(
2702 IN OPTIONAL LPCWSTR pBaseFaceName
,
2703 _In_ UINT cwcBaseFaceName
,
2704 IN LPCWSTR pEudcFontPath
,
2705 _In_ UINT cwcEudcFontPath
,
2707 _In_ INT iFontLinkType
,
2714 NtGdiGetStringBitmapW(
2725 NtGdiGetEudcTimeStampEx(
2726 _In_opt_z_count_(cwcBaseFaceName
) LPWSTR lpBaseFaceName
,
2727 _In_ ULONG cwcBaseFaceName
,
2728 _In_ BOOL bSystemTimeStamp
);
2733 NtGdiQueryFontAssocInfo(
2736 #if (_WIN32_WINNT >= 0x0500)
2740 NtGdiGetFontUnicodeRanges(
2742 _Out_opt_ LPGLYPHSET pgs
);
2749 NtGdiGetRealizationInfo(
2751 _Out_ PREALIZATION_INFO pri
,
2758 NtGdiAddRemoteMMInstanceToDC(
2760 _In_ DOWNLOADDESIGNVECTOR
*pddv
,
2766 NtGdiUnloadPrinterDriver(
2767 _In_z_bytecount_(cbDriverName
) LPWSTR pDriverName
,
2768 _In_ ULONG cbDriverName
);
2773 NtGdiEngAssociateSurface(
2776 _In_ FLONG flHooks
);
2781 NtGdiEngEraseSurface(
2789 NtGdiEngCreateBitmap(
2794 _In_opt_ PVOID pvBits
);
2799 NtGdiEngDeleteSurface(
2805 NtGdiEngLockSurface(
2811 NtGdiEngUnlockSurface(
2817 NtGdiEngMarkBandingSurface(
2823 NtGdiEngCreateDeviceSurface(
2826 _In_ ULONG iFormatCompat
);
2831 NtGdiEngCreateDeviceBitmap(
2834 _In_ ULONG iFormatCompat
);
2840 _In_ SURFOBJ
*psoDst
,
2841 _In_ SURFOBJ
*psoSrc
,
2842 _In_opt_ CLIPOBJ
*pco
,
2843 _In_opt_ XLATEOBJ
*pxlo
,
2844 _In_ RECTL
*prclDst
,
2845 _In_ POINTL
*pptlSrc
);
2851 _In_ SURFOBJ
*psoDest
,
2852 _In_ SURFOBJ
*psoSrc
,
2853 _In_opt_ SURFOBJ
*psoMask
,
2854 _In_opt_ CLIPOBJ
*pco
,
2855 _In_opt_ XLATEOBJ
*pxlo
,
2856 _In_opt_ COLORADJUSTMENT
*pca
,
2857 _In_ POINTL
*pptlHTOrg
,
2858 _In_ RECTL
*prclDest
,
2859 _In_ RECTL
*prclSrc
,
2860 _When_(psoMask
, _In_
) POINTL
*pptlMask
,
2867 _In_ SURFOBJ
*psoTrg
,
2868 _In_opt_ SURFOBJ
*psoSrc
,
2869 _In_opt_ SURFOBJ
*psoMask
,
2870 _In_opt_ CLIPOBJ
*pco
,
2871 _In_opt_ XLATEOBJ
*pxlo
,
2872 _In_ RECTL
*prclTrg
,
2873 _When_(psoSrc
, _In_
) POINTL
*pptlSrc
,
2874 _When_(psoMask
, _In_
) POINTL
*pptlMask
,
2875 _In_opt_ BRUSHOBJ
*pbo
,
2876 _When_(pbo
, _In_
) POINTL
*pptlBrush
,
2883 _In_ SURFOBJ
*psoTrg
,
2884 _In_ SURFOBJ
*psoSrc
,
2885 _In_opt_ SURFOBJ
*psoMsk
,
2887 _In_opt_ XLATEOBJ
*pxlo
,
2888 _In_ COLORADJUSTMENT
*pca
,
2889 _In_ POINTL
*pptlBrushOrg
,
2890 _In_ POINTFIX
*pptfx
,
2892 _When_(psoMsk
, _In_
) POINTL
*pptl
,
2898 NtGdiEngCreatePalette(
2901 _In_ ULONG
*pulColors
,
2909 NtGdiEngDeletePalette(
2910 _In_ HPALETTE hPal
);
2921 IN POINTL
*pptlBrushOrg
,
2922 IN LINEATTRS
*plineattrs
,
2934 IN POINTL
*pptlBrushOrg
,
2942 NtGdiEngStrokeAndFillPath(
2945 IN CLIPOBJ
*pco
,IN XFORMOBJ
*pxo
,
2946 IN BRUSHOBJ
*pboStroke
,
2947 IN LINEATTRS
*plineattrs
,
2948 IN BRUSHOBJ
*pboFill
,
2949 IN POINTL
*pptlBrushOrg
,
2961 IN POINTL
*pptlBrushOrg
,
2976 IN RECTL
*prclBounds
,
2984 IN SURFOBJ
*psoDest
,
2990 IN BLENDOBJ
*pBlendObj
2996 NtGdiEngGradientFill(
2997 IN SURFOBJ
*psoDest
,
3000 IN TRIVERTEX
*pVertex
,
3004 IN RECTL
*prclExtents
,
3005 IN POINTL
*pptlDitherOrg
,
3012 NtGdiEngTransparentBlt(
3019 _In_ ULONG iTransColor
,
3020 _In_ ULONG ulReserved
3031 IN RECTL
*prclExtra
,
3032 IN RECTL
*prclOpaque
,
3033 IN BRUSHOBJ
*pboFore
,
3034 IN BRUSHOBJ
*pboOpaque
,
3042 NtGdiEngStretchBltROP(
3045 IN SURFOBJ
*psoMask
,
3048 IN COLORADJUSTMENT
*pca
,
3049 IN POINTL
*pptlBrushOrg
,
3052 IN POINTL
*pptlMask
,
3061 NtGdiXLATEOBJ_cGetPalette(
3071 NtGdiCLIPOBJ_cEnumStart(
3075 _In_ ULONG iDirection
,
3091 NtGdiCLIPOBJ_ppoGetPath(
3098 NtGdiEngCreateClip(VOID
);
3110 NtGdiBRUSHOBJ_pvAllocRbrush(
3118 NtGdiBRUSHOBJ_pvGetRbrush(
3125 NtGdiBRUSHOBJ_ulGetBrushColor(
3132 NtGdiBRUSHOBJ_hGetColorTransform(
3139 NtGdiXFORMOBJ_bApplyXform(
3150 NtGdiXFORMOBJ_iGetXform(
3152 OUT OPTIONAL XFORML
*pxform
3158 NtGdiFONTOBJ_vGetInfo(
3167 NtGdiFONTOBJ_cGetGlyphs(
3178 NtGdiFONTOBJ_pxoGetXform(
3199 NtGdiFONTOBJ_cGetAllGlyphHandles(
3201 OUT OPTIONAL HGLYPH
*phg
3207 NtGdiFONTOBJ_pvTrueTypeFontFile(
3215 NtGdiFONTOBJ_pQueryGlyphAttrs(
3226 OUT PGLYPHPOS
*ppgpos
3232 NtGdiSTROBJ_bEnumPositionsOnly(
3235 OUT PGLYPHPOS
*ppgpos
3241 NtGdiSTROBJ_vEnumStart(
3242 _Inout_ STROBJ
*pstro
);
3247 NtGdiSTROBJ_dwGetCodePage(
3254 NtGdiSTROBJ_bGetAdvanceWidths(
3264 NtGdiEngComputeGlyphSet(
3266 _In_ INT nFirstChar
,
3273 NtGdiXLATEOBJ_iXlate(
3281 NtGdiXLATEOBJ_hGetColorTransform(
3288 NtGdiPATHOBJ_vGetBounds(
3304 NtGdiPATHOBJ_vEnumStart(
3318 NtGdiPATHOBJ_vEnumStartClipLines(
3328 NtGdiPATHOBJ_bEnumClipLines(
3351 NtGdiHT_Get8BPPFormatPalette(
3352 OUT OPTIONAL LPPALETTEENTRY pPaletteEntry
,
3354 IN USHORT GreenGamma
,
3361 NtGdiHT_Get8BPPMaskPalette(
3362 OUT OPTIONAL LPPALETTEENTRY pPaletteEntry
,
3363 _In_ BOOL Use8BPPMaskPal
,
3366 IN USHORT GreenGamma
,
3373 NtGdiUpdateTransform(
3389 NtGdiMirrorWindowOrg(
3396 NtGdiGetDeviceWidth(
3413 NtGdiBRUSHOBJ_DeleteRbrush(
3421 NtGdiUMPDEngFreeUserMem(
3422 IN KERNEL_PVOID
*ppv
3428 NtGdiSetBitmapAttributes(
3436 NtGdiClearBitmapAttributes(
3444 NtGdiSetBrushAttributes(
3452 NtGdiClearBrushAttributes(
3469 NtGdiMakeObjectXferable(
3471 _In_ DWORD dwProcessId
3477 NtGdiMakeObjectUnXferable(
3484 NtGdiInitSpool(VOID
);
3486 /* FIXME wrong prototypes fix the build */
3490 NtGdiGetSpoolMessage( DWORD u1
,