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
);
1175 NtGdiGetDeviceGammaRamp(
1177 _Out_writes_bytes_(sizeof(GAMMARAMP
)) LPVOID lpGammaRamp
);
1182 NtGdiSetDeviceGammaRamp(
1184 _In_reads_bytes_(sizeof(GAMMARAMP
)) LPVOID lpGammaRamp
);
1192 IN OUT PBITMAPINFO pbmiDIB
,
1193 IN OUT PVOID pvBits
,
1194 IN OUT ULONG
*pulBits
,
1195 OUT OPTIONAL DWORD
*piUsage
,
1196 OUT OPTIONAL BOOL
*pbAlreadyTran
,
1208 NtGdiCreateMetafileDC(
1221 NtGdiCreateClientObj(
1227 NtGdiDeleteClientObj(
1236 OUT OPTIONAL PBYTE pjOut
1242 NtGdiDeleteObjectApp(
1250 OUT OPTIONAL LPPOINT pptlBuf
,
1251 OUT OPTIONAL LPBYTE pjTypes
,
1258 NtGdiCreateCompatibleDC(
1264 NtGdiCreateDIBitmapInternal(
1269 _In_opt_ LPBYTE pjInit
,
1270 _In_opt_ LPBITMAPINFO pbmi
,
1272 _In_ UINT cjMaxInitInfo
,
1273 _In_ UINT cjMaxBits
,
1275 _In_ HANDLE hcmXform
);
1280 NtGdiCreateDIBSection(
1282 _In_opt_ HANDLE hSectionApp
,
1283 _In_ DWORD dwOffset
,
1284 _In_ LPBITMAPINFO pbmi
,
1288 _In_ ULONG_PTR dwColorSpace
,
1289 _Out_opt_ PVOID
*ppvBits
);
1294 NtGdiCreateSolidBrush(
1296 _In_opt_ HBRUSH hbr
);
1301 NtGdiCreateDIBBrush(
1307 _In_ PVOID pClient
);
1312 NtGdiCreatePatternBrushInternal(
1320 NtGdiCreateHatchBrushInternal(
1329 _In_ ULONG flPenStyle
,
1331 _In_ ULONG iBrushStyle
,
1333 _In_ ULONG_PTR lClientHatch
,
1334 _In_ ULONG_PTR lHatch
,
1336 _In_opt_ PULONG pulStyle
,
1338 _In_ BOOL bOldStylePen
,
1339 _In_opt_ HBRUSH hbrush
);
1344 NtGdiCreateEllipticRgn(
1353 NtGdiCreateRoundRectRgn(
1364 NtGdiCreateServerMetaFile(
1367 _In_reads_bytes_(cjData
) LPBYTE pjData
,
1375 NtGdiExtCreateRegion(
1376 _In_opt_ LPXFORM px
,
1378 _In_ LPRGNDATA prgn
);
1385 _Out_writes_bytes_(cjFontDir
) PBYTE pjFontDir
,
1386 _In_
unsigned cjFontDir
,
1387 _In_z_bytecount_(cjPathname
) LPWSTR pwszPathname
,
1388 _In_
unsigned cjPathname
);
1395 _In_count_(cpt
) LPPOINT ppt
,
1396 _In_count_(cpt
) LPBYTE pjAttr
,
1404 _In_ POLYTEXTW
*pptw
,
1406 _In_ DWORD dwCodePage
);
1411 NtGdiGetServerMetaFileBits(
1414 OUT OPTIONAL LPBYTE pjData
,
1428 _Must_inspect_result_
1432 NtGdiGetBitmapDimension(
1434 _When_(return != FALSE
, _Out_
) LPSIZE psize
);
1439 NtGdiGetNearestPaletteIndex(
1441 _In_ COLORREF crColor
);
1461 NtGdiRemoveFontResourceW(
1462 _In_z_count_(cwc
) WCHAR
*pwszFiles
,
1466 _In_ DWORD dwPidTid
,
1467 _In_opt_ DESIGNVECTOR
*pdv
);
1479 NtGdiSetBitmapDimension(
1483 _In_opt_ LPSIZE psizeOut
);
1502 NtGdiSetTextJustification(
1504 _In_ INT lBreakExtra
,
1517 NtGdiGetTextExtentExW(
1519 IN OPTIONAL LPWSTR lpwsz
,
1522 OUT OPTIONAL ULONG
*pcCh
,
1523 OUT OPTIONAL PULONG pdxOut
,
1531 NtGdiGetCharABCWidthsW(
1535 IN OPTIONAL PWCHAR pwch
,
1543 NtGdiGetCharacterPlacementW(
1547 _In_ INT nMaxExtent
,
1548 IN OUT LPGCP_RESULTSW pgcpw
,
1559 _In_ DWORD dwRadius
,
1560 _In_ DWORD dwStartAngle
,
1561 _In_ DWORD dwSweepAngle
);
1572 NtGdiSelectClipPath(
1603 NtGdiStrokeAndFillPath(
1627 NtGdiFlushUserBatch(VOID
);
1641 _Out_opt_ PDWORD pdwOut
);
1648 _In_ DWORD dwxScale
,
1649 _In_ DWORD dwyScale
);
1651 _Success_(return != FALSE
)
1657 _Out_ PDWORD pdwOut
);
1696 _In_ LPPOINT pptlTrg
,
1702 _In_ HBITMAP hbmMask
,
1705 _In_ DWORD crBackColor
);
1719 _In_opt_ HBITMAP hbmMask
,
1723 _In_ DWORD crBackColor
);
1732 _In_ COLORREF crColor
,
1733 _In_ UINT iFillType
);
1741 _In_ HBRUSH hbrush
);
1760 _In_ COLORREF crColor
);
1788 OUT BOOL
*pbBanding
,
1817 IN OPTIONAL PWCHAR pwc
,
1825 NtGdiGetCharWidthInfo(
1827 OUT PCHWIDTHINFO pChWidthInfo
1837 IN OPTIONAL LPSTR pjIn
1845 IN OPTIONAL PWCHAR pDriver
,
1849 IN OPTIONAL LPSTR pjIn
,
1851 OUT OPTIONAL LPSTR pjOut
1860 _In_ DWORD dwOffset
,
1861 OUT OPTIONAL PVOID pvBuf
,
1868 NtGdiGetGlyphOutline(
1872 OUT LPGLYPHMETRICS pgm
,
1874 OUT OPTIONAL PVOID pvBuf
,
1876 _In_ BOOL bIgnoreRotation
1884 OUT EXTTEXTMETRIC
*petm
1890 NtGdiGetRasterizerCaps(
1891 OUT LPRASTERIZER_STATUS praststat
,
1898 NtGdiGetKerningPairs(
1901 OUT OPTIONAL KERNINGPAIR
*pkpDst
1913 NtGdiGetObjectBitmapHandle(
1923 _In_ INT iObjectType
,
1925 OUT OPTIONAL PVOID pvBuf
1931 // The exact size of the buffer at pdm is pdm->dmSize + pdm->dmDriverExtra.
1932 // But this can't be specified with current annotation language.
1934 // typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;
1942 _In_ LPDEVMODEW pdm
,
1943 OUT PBOOL pbBanding
,
1944 IN OPTIONAL VOID
*pDriverInfo2
, // this is "typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;"
1945 OUT VOID
*ppUMdhpdev
1959 NtGdiGetColorAdjustment(
1961 _Out_ PCOLORADJUSTMENT pcaOut
);
1966 NtGdiSetColorAdjustment(
1968 _In_ PCOLORADJUSTMENT pca
);
1980 IN OPTIONAL PUNICODE_STRING pustrDevice
,
1981 IN DEVMODEW
*pdm
, // See note for NtGdiResetDC
1982 IN PUNICODE_STRING pustrLogAddr
,
1985 IN OPTIONAL HANDLE hspool
,
1986 IN OPTIONAL VOID
*pDriverInfo2
, // this is "typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;"
1999 _Success_(return!=FALSE
)
2006 _Out_ PPOINTL pptOut
);
2011 NtGdiScaleViewportExtEx(
2017 OUT OPTIONAL LPSIZE pszOut
2023 NtGdiScaleWindowExtEx(
2029 OUT OPTIONAL LPSIZE pszOut
2035 NtGdiSetVirtualResolution(
2037 _In_ INT cxVirtualDevicePixel
,
2038 _In_ INT cyVirtualDevicePixel
,
2039 _In_ INT cxVirtualDeviceMm
,
2040 _In_ INT cyVirtualDeviceMm
);
2047 _In_ INT cxVirtualDevice
,
2048 _In_ INT cyVirtualDevice
);
2050 _Success_(return !=FALSE
)
2062 NtGdiModifyWorldTransform(
2064 _In_opt_ LPXFORM pxf
,
2070 NtGdiCombineTransform(
2071 _Out_ LPXFORM pxfDst
,
2072 _In_ LPXFORM pxfSrc1
,
2073 _In_ LPXFORM pxfSrc2
);
2078 NtGdiTransformPoints(
2080 _In_reads_(c
) PPOINT pptIn
,
2081 _Out_writes_(c
) PPOINT pptOut
,
2088 NtGdiConvertMetafileRect(
2090 _Inout_ PRECTL prect
);
2095 NtGdiGetTextCharsetInfo(
2097 OUT OPTIONAL LPFONTSIGNATURE lpSig
,
2114 NtGdiGetPerBandInfo(
2116 IN OUT PERBANDINFO
*ppbi
2123 _In_ HANDLE hProcess
,
2127 _In_ UINT cjResultSize
2133 NtGdiSetMagicColors(
2135 IN PALETTEENTRY peMagic
,
2171 NtGdiExtSelectClipRgn(
2185 #ifdef _WINDOWBLT_NOTIFICATION_
2199 _In_ DWORD crBackColor
,
2215 _In_ DWORD crBackColor
);
2223 _In_ RECTL
*prectDst
,
2225 _In_ RECTL
*prectSrc
,
2226 _In_ POINTL
*pptlOrigin
,
2228 _In_ DWORD crBackColor
);
2233 NtGdiTransparentBlt(
2244 _In_ COLORREF TransColor
);
2251 _In_z_count_(cwc
) LPWSTR lpwsz
,
2259 NtGdiGetTextMetricsW(
2261 _Out_bytecap_(cj
) TMW_INTERNAL
* ptm
,
2270 OUT OPTIONAL LPWSTR pszOut
,
2271 _In_ BOOL bAliasName
2290 IN OPTIONAL LPRECT prcl
,
2291 _In_z_count_(cwc
) LPWSTR pwsz
,
2293 IN OPTIONAL LPINT pdx
,
2294 _In_ DWORD dwCodePage
2300 NtGdiIntersectClipRect(
2333 _In_ PPOLYPATBLT pPoly
,
2340 NtGdiUnrealizeObject(
2346 NtGdiGetStockObject(
2352 NtGdiCreateCompatibleBitmap(
2365 _Success_(return != FALSE
)
2373 _Out_opt_ LPPOINT pptOut
);
2381 _Out_opt_bytecap_(cj
) LPVOID pvOut
);
2390 _Success_(return!=FALSE
)
2394 NtGdiGetDeviceCapsAll (
2396 _Out_ PDEVCAPS pDevCaps
);
2413 _In_ DWORD dwBackColor
);
2415 _Success_(return != FALSE
)
2423 _Out_opt_ LPPOINT pptOut
);
2433 _In_opt_ LPBYTE pjInit
);
2438 NtGdiCreateHalftonePalette(
2451 NtGdiExcludeClipRect(
2470 _In_opt_ HRGN hrgnSrc2
,
2489 _In_bytecount_(cj
) PBYTE pjInit
);
2494 NtGdiGetDIBitsInternal(
2497 _In_ UINT iStartScan
,
2499 _Out_opt_ LPBYTE pBits
,
2500 _Inout_ LPBITMAPINFO pbmi
,
2502 _In_ UINT cjMaxBits
,
2503 _In_ UINT cjMaxInfo
);
2513 _Success_(return!=ERROR
)
2519 _Out_ LPRECT prcOut
);
2529 _Success_(return!=0)
2549 NtGdiGetNearestColor(
2556 NtGdiGetSystemPaletteUse(
2562 NtGdiSetSystemPaletteUse(
2566 _Success_(return!=0)
2572 _In_ ULONG cjBuffer
,
2573 _Out_opt_bytecap_(cjBuffer
) LPRGNDATA lpRgnData
);
2585 NtGdiAddFontResourceW(
2586 _In_z_count_(cwc
) WCHAR
*pwszFiles
,
2590 _In_ DWORD dwPidTid
,
2591 _In_opt_ DESIGNVECTOR
*pdv
);
2593 #if (_WIN32_WINNT >= 0x0500)
2598 _In_bytecount_(cjElfw
) ENUMLOGFONTEXDVW
*pelfw
,
2602 _In_ PVOID pvCliData
);
2608 _In_bytecount_(cjElfw
) LPEXTLOGFONTW pelfw
,
2612 _In_ PVOID pvCliData
2619 NtGdiSetFontEnumeration(
2626 _In_ ULONG_PTR idEnum
);
2628 #if (_WIN32_WINNT >= 0x0500)
2634 _In_ ULONG_PTR idEnum
,
2637 OUT PENUMFONTDATAW pefdw
2646 _In_ ULONG iEnumType
,
2647 _In_ FLONG flWin31Compat
,
2649 IN OPTIONAL LPWSTR pwszFaceName
,
2650 _In_ ULONG lfCharSet
,
2658 OUT PUNIVERSAL_FONT_ID pufiFontList
,
2659 _In_ ULONG nBufferSize
,
2660 OUT PLARGE_INTEGER pTimeStamp
2666 NtGdiConsoleTextOut(
2668 _In_ POLYTEXTW
*lpto
,
2670 _In_ RECTL
*prclBounds
);
2675 NtGdiFullscreenControl(
2676 IN FULLSCREENCONTROL FullscreenCommand
,
2677 IN PVOID FullscreenInput
,
2678 _In_ DWORD FullscreenInputLength
,
2679 OUT PVOID FullscreenOutput
,
2680 IN OUT PULONG FullscreenOutputLength
2698 NtGdiEudcLoadUnloadLink(
2699 IN OPTIONAL LPCWSTR pBaseFaceName
,
2700 _In_ UINT cwcBaseFaceName
,
2701 IN LPCWSTR pEudcFontPath
,
2702 _In_ UINT cwcEudcFontPath
,
2704 _In_ INT iFontLinkType
,
2711 NtGdiGetStringBitmapW(
2722 NtGdiGetEudcTimeStampEx(
2723 _In_opt_z_count_(cwcBaseFaceName
) LPWSTR lpBaseFaceName
,
2724 _In_ ULONG cwcBaseFaceName
,
2725 _In_ BOOL bSystemTimeStamp
);
2730 NtGdiQueryFontAssocInfo(
2733 #if (_WIN32_WINNT >= 0x0500)
2737 NtGdiGetFontUnicodeRanges(
2739 _Out_opt_ LPGLYPHSET pgs
);
2746 NtGdiGetRealizationInfo(
2748 _Out_ PREALIZATION_INFO pri
,
2755 NtGdiAddRemoteMMInstanceToDC(
2757 _In_ DOWNLOADDESIGNVECTOR
*pddv
,
2763 NtGdiUnloadPrinterDriver(
2764 _In_z_bytecount_(cbDriverName
) LPWSTR pDriverName
,
2765 _In_ ULONG cbDriverName
);
2770 NtGdiEngAssociateSurface(
2773 _In_ FLONG flHooks
);
2778 NtGdiEngEraseSurface(
2786 NtGdiEngCreateBitmap(
2791 _In_opt_ PVOID pvBits
);
2796 NtGdiEngDeleteSurface(
2802 NtGdiEngLockSurface(
2808 NtGdiEngUnlockSurface(
2814 NtGdiEngMarkBandingSurface(
2820 NtGdiEngCreateDeviceSurface(
2823 _In_ ULONG iFormatCompat
);
2828 NtGdiEngCreateDeviceBitmap(
2831 _In_ ULONG iFormatCompat
);
2837 _In_ SURFOBJ
*psoDst
,
2838 _In_ SURFOBJ
*psoSrc
,
2839 _In_opt_ CLIPOBJ
*pco
,
2840 _In_opt_ XLATEOBJ
*pxlo
,
2841 _In_ RECTL
*prclDst
,
2842 _In_ POINTL
*pptlSrc
);
2848 _In_ SURFOBJ
*psoDest
,
2849 _In_ SURFOBJ
*psoSrc
,
2850 _In_opt_ SURFOBJ
*psoMask
,
2851 _In_opt_ CLIPOBJ
*pco
,
2852 _In_opt_ XLATEOBJ
*pxlo
,
2853 _In_opt_ COLORADJUSTMENT
*pca
,
2854 _In_ POINTL
*pptlHTOrg
,
2855 _In_ RECTL
*prclDest
,
2856 _In_ RECTL
*prclSrc
,
2857 _When_(psoMask
, _In_
) POINTL
*pptlMask
,
2864 _In_ SURFOBJ
*psoTrg
,
2865 _In_opt_ SURFOBJ
*psoSrc
,
2866 _In_opt_ SURFOBJ
*psoMask
,
2867 _In_opt_ CLIPOBJ
*pco
,
2868 _In_opt_ XLATEOBJ
*pxlo
,
2869 _In_ RECTL
*prclTrg
,
2870 _When_(psoSrc
, _In_
) POINTL
*pptlSrc
,
2871 _When_(psoMask
, _In_
) POINTL
*pptlMask
,
2872 _In_opt_ BRUSHOBJ
*pbo
,
2873 _When_(pbo
, _In_
) POINTL
*pptlBrush
,
2880 _In_ SURFOBJ
*psoTrg
,
2881 _In_ SURFOBJ
*psoSrc
,
2882 _In_opt_ SURFOBJ
*psoMsk
,
2884 _In_opt_ XLATEOBJ
*pxlo
,
2885 _In_ COLORADJUSTMENT
*pca
,
2886 _In_ POINTL
*pptlBrushOrg
,
2887 _In_ POINTFIX
*pptfx
,
2889 _When_(psoMsk
, _In_
) POINTL
*pptl
,
2895 NtGdiEngCreatePalette(
2898 _In_ ULONG
*pulColors
,
2906 NtGdiEngDeletePalette(
2907 _In_ HPALETTE hPal
);
2918 IN POINTL
*pptlBrushOrg
,
2919 IN LINEATTRS
*plineattrs
,
2931 IN POINTL
*pptlBrushOrg
,
2939 NtGdiEngStrokeAndFillPath(
2942 IN CLIPOBJ
*pco
,IN XFORMOBJ
*pxo
,
2943 IN BRUSHOBJ
*pboStroke
,
2944 IN LINEATTRS
*plineattrs
,
2945 IN BRUSHOBJ
*pboFill
,
2946 IN POINTL
*pptlBrushOrg
,
2958 IN POINTL
*pptlBrushOrg
,
2973 IN RECTL
*prclBounds
,
2981 IN SURFOBJ
*psoDest
,
2987 IN BLENDOBJ
*pBlendObj
2993 NtGdiEngGradientFill(
2994 IN SURFOBJ
*psoDest
,
2997 IN TRIVERTEX
*pVertex
,
3001 IN RECTL
*prclExtents
,
3002 IN POINTL
*pptlDitherOrg
,
3009 NtGdiEngTransparentBlt(
3016 _In_ ULONG iTransColor
,
3017 _In_ ULONG ulReserved
3028 IN RECTL
*prclExtra
,
3029 IN RECTL
*prclOpaque
,
3030 IN BRUSHOBJ
*pboFore
,
3031 IN BRUSHOBJ
*pboOpaque
,
3039 NtGdiEngStretchBltROP(
3042 IN SURFOBJ
*psoMask
,
3045 IN COLORADJUSTMENT
*pca
,
3046 IN POINTL
*pptlBrushOrg
,
3049 IN POINTL
*pptlMask
,
3058 NtGdiXLATEOBJ_cGetPalette(
3068 NtGdiCLIPOBJ_cEnumStart(
3072 _In_ ULONG iDirection
,
3088 NtGdiCLIPOBJ_ppoGetPath(
3095 NtGdiEngCreateClip(VOID
);
3107 NtGdiBRUSHOBJ_pvAllocRbrush(
3115 NtGdiBRUSHOBJ_pvGetRbrush(
3122 NtGdiBRUSHOBJ_ulGetBrushColor(
3129 NtGdiBRUSHOBJ_hGetColorTransform(
3136 NtGdiXFORMOBJ_bApplyXform(
3147 NtGdiXFORMOBJ_iGetXform(
3149 OUT OPTIONAL XFORML
*pxform
3155 NtGdiFONTOBJ_vGetInfo(
3164 NtGdiFONTOBJ_cGetGlyphs(
3175 NtGdiFONTOBJ_pxoGetXform(
3196 NtGdiFONTOBJ_cGetAllGlyphHandles(
3198 OUT OPTIONAL HGLYPH
*phg
3204 NtGdiFONTOBJ_pvTrueTypeFontFile(
3212 NtGdiFONTOBJ_pQueryGlyphAttrs(
3223 OUT PGLYPHPOS
*ppgpos
3229 NtGdiSTROBJ_bEnumPositionsOnly(
3232 OUT PGLYPHPOS
*ppgpos
3238 NtGdiSTROBJ_vEnumStart(
3239 _Inout_ STROBJ
*pstro
);
3244 NtGdiSTROBJ_dwGetCodePage(
3251 NtGdiSTROBJ_bGetAdvanceWidths(
3261 NtGdiEngComputeGlyphSet(
3263 _In_ INT nFirstChar
,
3270 NtGdiXLATEOBJ_iXlate(
3278 NtGdiXLATEOBJ_hGetColorTransform(
3285 NtGdiPATHOBJ_vGetBounds(
3301 NtGdiPATHOBJ_vEnumStart(
3315 NtGdiPATHOBJ_vEnumStartClipLines(
3325 NtGdiPATHOBJ_bEnumClipLines(
3348 NtGdiHT_Get8BPPFormatPalette(
3349 OUT OPTIONAL LPPALETTEENTRY pPaletteEntry
,
3351 IN USHORT GreenGamma
,
3358 NtGdiHT_Get8BPPMaskPalette(
3359 OUT OPTIONAL LPPALETTEENTRY pPaletteEntry
,
3360 _In_ BOOL Use8BPPMaskPal
,
3363 IN USHORT GreenGamma
,
3370 NtGdiUpdateTransform(
3386 NtGdiMirrorWindowOrg(
3393 NtGdiGetDeviceWidth(
3410 NtGdiBRUSHOBJ_DeleteRbrush(
3418 NtGdiUMPDEngFreeUserMem(
3419 IN KERNEL_PVOID
*ppv
3425 NtGdiSetBitmapAttributes(
3433 NtGdiClearBitmapAttributes(
3441 NtGdiSetBrushAttributes(
3449 NtGdiClearBrushAttributes(
3466 NtGdiMakeObjectXferable(
3468 _In_ DWORD dwProcessId
3474 NtGdiMakeObjectUnXferable(
3481 NtGdiInitSpool(VOID
);
3483 /* FIXME wrong prototypes fix the build */
3487 NtGdiGetSpoolMessage( DWORD u1
,