xpmgr/BuildTools/Include/ntgdi.h

3014 lines
64 KiB
C

/******************************Module*Header*******************************\
* Module Name: ntgdi.h
*
* Structures defining kernel-mode entry points for GDI.
*
* Copyright (c) 1994-1999 Microsoft Corporation
\**************************************************************************/
#ifndef W32KAPI
#define W32KAPI DECLSPEC_ADDRSAFE
#endif
typedef struct _HLSURF_INFORMATION_PROBE {
union {
HLSURF_INFORMATION_SURFACE Surface;
HLSURF_INFORMATION_PRESENTFLAGS PresentFlags;
HLSURF_INFORMATION_TOKENUPDATEID UpdateId;
HLSURF_INFORMATION_SET_SIGNALING SetSignaling;
DWMSURFACEDATA SurfaceData;
HLSURF_INFORMATION_DIRTYREGIONS DirtyRegions;
HLSURF_INFORMATION_REDIRSTYLE RedirStyle;
} u;
} HLSURF_INFORMATION_PROBE, *PHLSURF_INFORMATION_PROBE;
// A few GDI API's fill buffers but have no input parameter saying how big
// the buffers are. The idiom is that you call it once with a NULL buffer
// pointer to find out how big the buffer should be, allocate that much,
// then call again. This sounds like a job for __out_bcount_opt(size), but
// this annotation requires (size) to be known beforehand (i.e. it is a
// precondition). The best we can do is to specify the size as a
// postcondition.
#define __out_post_bcount_opt(size) __post __valid __refparam __post __byte_writableTo(size) __exceptthat __maybenull
#define __out_post_ecount_opt(size) __post __valid __refparam __post __elem_writableTo(size) __exceptthat __maybenull
// Trace creation of all GDI SURFACE objects
#define TRACE_SURFACE_ALLOCS (DBG || 0)
// enable directX API to change surface pointer
#ifdef COMBOX_SANDBOX
#define DX_LONGHORN_PRESERVEDC
#endif
// PRIVATE
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiInit(
);
__kernel_entry W32KAPI int APIENTRY
NtGdiSetDIBitsToDeviceInternal(
__in HDC hdcDest,
__in int xDst,
__in int yDst,
__in DWORD cx,
__in DWORD cy,
__in int xSrc,
__in int ySrc,
__in DWORD iStartScan,
__in DWORD cNumScan,
__in_bcount(cjMaxBits) LPBYTE pInitBits,
__in LPBITMAPINFO pbmi,
__in DWORD iUsage,
__in UINT cjMaxBits,
__in UINT cjMaxInfo,
__in BOOL bTransformCoordinates,
__in_opt HANDLE hcmXform
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetFontResourceInfoInternalW(
__in_ecount(cwc) LPWSTR pwszFiles,
__in ULONG cwc,
__in ULONG cFiles,
__in UINT cjIn,
__out LPDWORD pdwBytes,
__out_bcount(cjIn) LPVOID pvBuf,
__in DWORD iType
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiGetGlyphIndicesW(
__in HDC hdc,
__in_ecount_opt(cwc) LPWSTR pwc,
__in int cwc,
__out_opt LPWORD pgi,
__in DWORD iMode
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiGetGlyphIndicesWInternal(
__in HDC hdc,
__in_ecount_opt(cwc) LPWSTR pwc,
__in int cwc,
__out_opt LPWORD pgi,
__in DWORD iMode,
__in BOOL bSubset
);
//
// pLogPal is annotated as __in_bcount(cEntries * 4 + 4) because the
// current SAL doesn't support sizeof operator. The size of related buffer is
// sizeof(LOGPALETTE) - sizeof(PALETTEENTRY) + sizeof(PALETTEENTRY) * cEntries.
//
__kernel_entry W32KAPI HPALETTE APIENTRY
NtGdiCreatePaletteInternal(
__in_bcount(cEntries * 4 + 4) LPLOGPALETTE pLogPal,
__in UINT cEntries
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiArcInternal(
__in ARCTYPE arctype,
__in HDC hdc,
__in int x1,
__in int y1,
__in int x2,
__in int y2,
__in int x3,
__in int y3,
__in int x4,
__in int y4
);
__kernel_entry W32KAPI int
APIENTRY
NtGdiStretchDIBitsInternal(
__in HDC hdc,
__in int xDst,
__in int yDst,
__in int cxDst,
__in int cyDst,
__in int xSrc,
__in int ySrc,
__in int cxSrc,
__in int cySrc,
__in_bcount_opt(cjMaxBits) LPBYTE pjInit,
__in LPBITMAPINFO pbmi,
__in DWORD dwUsage,
__in DWORD dwRop4,
__in UINT cjMaxInfo,
__in UINT cjMaxBits,
__in HANDLE hcmXform
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiGetOutlineTextMetricsInternalW(
__in HDC hdc,
__in ULONG cjotm,
__out_bcount_opt(cjotm) OUTLINETEXTMETRICW *potmw,
__out TMDIFF *ptmd
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetAndSetDCDword(
__in HDC hdc,
__in UINT u,
__in DWORD dwIn,
__out DWORD *pdwResult
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiGetDCObject(
__in HDC hdc,
__in int itype
);
__kernel_entry W32KAPI HDC APIENTRY
NtGdiGetDCforBitmap(
__in HBITMAP hsurf
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetMonitorID(
__in HDC hdc,
__in DWORD dwSize,
__out_bcount(dwSize) LPWSTR pszMonitorID
);
// flags returned from GetUFI and passed to GetUFIBits
#define FL_UFI_PRIVATEFONT 1
#define FL_UFI_DESIGNVECTOR_PFF 2
#define FL_UFI_MEMORYFONT 4
__kernel_entry W32KAPI INT APIENTRY
NtGdiGetLinkedUFIs(
__in HDC hdc,
__out_ecount_opt(BufferSize) PUNIVERSAL_FONT_ID pufiLinkedUFIs,
__in INT BufferSize
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetLinkedUFIs(
__in HDC hdc,
__in_ecount(uNumUFIs) PUNIVERSAL_FONT_ID pufiLinks,
__in ULONG uNumUFIs
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetUFI(
__in HDC hdc,
__out PUNIVERSAL_FONT_ID pufi,
__out_opt DESIGNVECTOR *pdv,
__out ULONG *pcjDV,
__out ULONG *pulBaseCheckSum,
__out FLONG *pfl
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiForceUFIMapping(
__in HDC hdc,
__in PUNIVERSAL_FONT_ID pufi
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetUFIPathname(
__in PUNIVERSAL_FONT_ID pufi,
__deref_out_range(0, MAX_PATH * 3) ULONG* pcwc,
__out_ecount_part_opt(MAX_PATH * 3, *pcwc) LPWSTR pwszPathname,
__out_opt ULONG* pcNumFiles,
__in FLONG fl,
__out_opt BOOL *pbMemFont,
__out_opt ULONG *pcjView,
__out_opt PVOID pvView,
__out_opt BOOL *pbTTC,
__out_opt ULONG *piTTC
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiAddRemoteFontToDC(
__in HDC hdc,
__in_bcount(cjBuffer) PVOID pvBuffer,
__in ULONG cjBuffer,
__in_opt PUNIVERSAL_FONT_ID pufi
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiAddFontMemResourceEx(
__in_bcount(cjBuffer) PVOID pvBuffer,
__in DWORD cjBuffer,
__in_bcount_opt(cjDV) DESIGNVECTOR *pdv,
__in ULONG cjDV,
__out DWORD *pNumFonts
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiRemoveFontMemResourceEx(
__in HANDLE hMMFont
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiUnmapMemFont(
__in PVOID pvView
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiRemoveMergeFont(
__in HDC hdc,
__in UNIVERSAL_FONT_ID *pufi
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiAnyLinkedFonts();
// local printing with embedded fonts
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetEmbUFI(
__in HDC hdc,
__out PUNIVERSAL_FONT_ID pufi,
__out_opt DESIGNVECTOR *pdv,
__out ULONG *pcjDV,
__out ULONG *pulBaseCheckSum,
__out FLONG *pfl,
__out KERNEL_PVOID *embFontID
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiGetEmbedFonts(
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiChangeGhostFont(
__in KERNEL_PVOID *pfontID,
__in BOOL bLoad
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiAddEmbFontToDC(
__in HDC hdc,
__in VOID **pFontID
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiFontIsLinked(
__in HDC hdc
);
__kernel_entry W32KAPI ULONG_PTR APIENTRY
NtGdiPolyPolyDraw(
__in HDC hdc,
__in PPOINT ppt,
__in_ecount(ccpt) PULONG pcpt,
__in ULONG ccpt,
__in int iFunc
);
__kernel_entry W32KAPI LONG APIENTRY
NtGdiDoPalette(
__in HPALETTE hpal,
__in WORD iStart,
__in WORD cEntries,
__in_ecount_opt(cEntries) PALETTEENTRY *pPalEntries,
__in DWORD iFunc,
__in BOOL bInbound
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiComputeXformCoefficients(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetWidthTable(
__in HDC hdc,
__in ULONG cSpecial,
__in_ecount(cwc) WCHAR *pwc,
__in ULONG cwc,
__out_ecount(cwc) USHORT *psWidth,
__out_opt WIDTHDATA *pwd,
__out FLONG *pflInfo
);
__kernel_entry W32KAPI __success(return > 0) int APIENTRY
NtGdiDescribePixelFormat(
__in HDC hdc,
__in int ipfd,
__in UINT cjpfd,
__out_bcount(cjpfd) PPIXELFORMATDESCRIPTOR ppfd
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetPixelFormat(
__in HDC hdc,
__in int ipfd
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSwapBuffers(
__in HDC hdc
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDxgGenericThunk(
__in ULONG_PTR ulIndex,
__in ULONG_PTR ulHandle,
__inout SIZE_T *pdwSizeOfPtr1,
__inout PVOID pvPtr1,
__inout SIZE_T *pdwSizeOfPtr2,
__inout PVOID pvPtr2
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdAddAttachedSurface(
__in HANDLE hSurface,
__in HANDLE hSurfaceAttached,
__inout PDD_ADDATTACHEDSURFACEDATA puAddAttachedSurfaceData
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDdAttachSurface(
__in HANDLE hSurfaceFrom,
__in HANDLE hSurfaceTo
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdBlt(
__in HANDLE hSurfaceDest,
__in HANDLE hSurfaceSrc,
__inout PDD_BLTDATA puBltData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdCanCreateSurface(
__in HANDLE hDirectDraw,
__inout PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdColorControl(
__in HANDLE hSurface,
__inout PDD_COLORCONTROLDATA puColorControlData
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiDdCreateDirectDrawObject(
__in HDC hdc
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdCreateSurface(
__in HANDLE hDirectDraw,
__in HANDLE* hSurface,
__inout DDSURFACEDESC* puSurfaceDescription,
__inout DD_SURFACE_GLOBAL* puSurfaceGlobalData,
__inout DD_SURFACE_LOCAL* puSurfaceLocalData,
__inout DD_SURFACE_MORE* puSurfaceMoreData,
__inout DD_CREATESURFACEDATA* puCreateSurfaceData,
__out HANDLE* puhSurface
);
#ifdef DX_LONGHORN_PRESERVEDC
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdChangeSurfacePointer(
__in HANDLE hSurface,
__in PVOID pSurfacePointer
);
#endif // DX_LONGHORN_PRESERVEDC
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiDdCreateSurfaceObject(
__in HANDLE hDirectDrawLocal,
__in HANDLE hSurface,
__in PDD_SURFACE_LOCAL puSurfaceLocal,
__in PDD_SURFACE_MORE puSurfaceMore,
__in PDD_SURFACE_GLOBAL puSurfaceGlobal,
__in BOOL bComplete
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDdDeleteSurfaceObject(
__in HANDLE hSurface
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDdDeleteDirectDrawObject(
__in HANDLE hDirectDrawLocal
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdDestroySurface(
__in HANDLE hSurface,
__in BOOL bRealDestroy
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdFlip(
__in HANDLE hSurfaceCurrent,
__in HANDLE hSurfaceTarget,
__in HANDLE hSurfaceCurrentLeft,
__in HANDLE hSurfaceTargetLeft,
__inout PDD_FLIPDATA puFlipData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetAvailDriverMemory(
__in HANDLE hDirectDraw,
__inout PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetBltStatus(
__in HANDLE hSurface,
__inout PDD_GETBLTSTATUSDATA puGetBltStatusData
);
__kernel_entry W32KAPI HDC APIENTRY
NtGdiDdGetDC(
__in HANDLE hSurface,
__in PALETTEENTRY* puColorTable
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetDriverInfo(
__in HANDLE hDirectDraw,
__inout PDD_GETDRIVERINFODATA puGetDriverInfoData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetFlipStatus(
__in HANDLE hSurface,
__inout PDD_GETFLIPSTATUSDATA puGetFlipStatusData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetScanLine(
__in HANDLE hDirectDraw,
__inout PDD_GETSCANLINEDATA puGetScanLineData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdSetExclusiveMode(
__in HANDLE hDirectDraw,
__inout PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdFlipToGDISurface(
__in HANDLE hDirectDraw,
__inout PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdLock(
__in HANDLE hSurface,
__inout PDD_LOCKDATA puLockData,
__in HDC hdcClip
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDdQueryDirectDrawObject(
__in HANDLE hDirectDrawLocal,
__out PDD_HALINFO pHalInfo,
__out_ecount(3) DWORD* pCallBackFlags,
__out_opt LPD3DNTHAL_CALLBACKS puD3dCallbacks,
__out_opt LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
__out_opt PDD_D3DBUFCALLBACKS puD3dBufferCallbacks,
__out_opt LPDDSURFACEDESC puD3dTextureFormats,
__out DWORD* puNumHeaps,
__out_opt VIDEOMEMORY* puvmList,
__out DWORD* puNumFourCC,
__out_opt DWORD* puFourCC
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDdReenableDirectDrawObject(
__in HANDLE hDirectDrawLocal,
__inout BOOL* pubNewMode
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDdReleaseDC(
__in HANDLE hSurface
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDdResetVisrgn(
__in HANDLE hSurface,
__in HWND hwnd
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdSetColorKey(
__in HANDLE hSurface,
__inout PDD_SETCOLORKEYDATA puSetColorKeyData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdSetOverlayPosition(
__in HANDLE hSurfaceSource,
__in HANDLE hSurfaceDestination,
__inout PDD_SETOVERLAYPOSITIONDATA puSetOverlayPositionData
);
__kernel_entry W32KAPI VOID APIENTRY
NtGdiDdUnattachSurface(
__in HANDLE hSurface,
__in HANDLE hSurfaceAttached
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdUnlock(
__in HANDLE hSurface,
__inout PDD_UNLOCKDATA puUnlockData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdUpdateOverlay(
__in HANDLE hSurfaceDestination,
__in HANDLE hSurfaceSource,
__inout PDD_UPDATEOVERLAYDATA puUpdateOverlayData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdWaitForVerticalBlank(
__in HANDLE hDirectDraw,
__inout PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiDdGetDxHandle(
__in_opt HANDLE hDirectDraw,
__in_opt HANDLE hSurface,
__in BOOL bRelease
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDdSetGammaRamp(
__in HANDLE hDirectDraw,
__in HDC hdc,
__in_bcount(256*3*2) LPVOID lpGammaRamp
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdLockD3D(
__in HANDLE hSurface,
__inout PDD_LOCKDATA puLockData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdUnlockD3D(
__in HANDLE hSurface,
__inout PDD_UNLOCKDATA puUnlockData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdCreateD3DBuffer(
__in HANDLE hDirectDraw,
__inout HANDLE* hSurface,
__inout DDSURFACEDESC* puSurfaceDescription,
__inout DD_SURFACE_GLOBAL* puSurfaceGlobalData,
__inout DD_SURFACE_LOCAL* puSurfaceLocalData,
__inout DD_SURFACE_MORE* puSurfaceMoreData,
__inout DD_CREATESURFACEDATA* puCreateSurfaceData,
__inout HANDLE* puhSurface
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdCanCreateD3DBuffer(
__in HANDLE hDirectDraw,
__inout PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdDestroyD3DBuffer(
__in HANDLE hSurface
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiD3dContextCreate(
__in HANDLE hDirectDrawLocal,
__in HANDLE hSurfColor,
__in HANDLE hSurfZ,
__inout D3DNTHAL_CONTEXTCREATEI *pdcci
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiD3dContextDestroy(
__in LPD3DNTHAL_CONTEXTDESTROYDATA
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiD3dContextDestroyAll(
__out LPD3DNTHAL_CONTEXTDESTROYALLDATA pdcdad
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiD3dValidateTextureStageState(
__inout LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiD3dDrawPrimitives2(
__in HANDLE hCmdBuf,
__in HANDLE hVBuf,
__inout LPD3DNTHAL_DRAWPRIMITIVES2DATA pded,
__inout FLATPTR* pfpVidMemCmd,
__inout DWORD* pdwSizeCmd,
__inout FLATPTR* pfpVidMemVtx,
__inout DWORD* pdwSizeVtx
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetDriverState(
__inout PDD_GETDRIVERSTATEDATA pdata
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdCreateSurfaceEx(
__in HANDLE hDirectDraw,
__in HANDLE hSurface,
__in DWORD dwSurfaceHandle
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpCanCreateVideoPort(
__in HANDLE hDirectDraw,
__inout PDD_CANCREATEVPORTDATA puCanCreateVPortData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpColorControl(
__in HANDLE hVideoPort,
__inout PDD_VPORTCOLORDATA puVPortColorData
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiDvpCreateVideoPort(
__in HANDLE hDirectDraw,
__inout PDD_CREATEVPORTDATA puCreateVPortData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpDestroyVideoPort(
__in HANDLE hVideoPort,
__inout PDD_DESTROYVPORTDATA puDestroyVPortData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpFlipVideoPort(
__in HANDLE hVideoPort,
__in HANDLE hDDSurfaceCurrent,
__in HANDLE hDDSurfaceTarget,
__inout PDD_FLIPVPORTDATA puFlipVPortData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpGetVideoPortBandwidth(
__in HANDLE hVideoPort,
__inout PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpGetVideoPortField(
__in HANDLE hVideoPort,
__inout PDD_GETVPORTFIELDDATA puGetVPortFieldData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpGetVideoPortFlipStatus(
__in HANDLE hDirectDraw,
__inout PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpGetVideoPortInputFormats(
__in HANDLE hVideoPort,
__inout PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpGetVideoPortLine(
__in HANDLE hVideoPort,
__inout PDD_GETVPORTLINEDATA puGetVPortLineData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpGetVideoPortOutputFormats(
__in HANDLE hVideoPort,
__inout PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpGetVideoPortConnectInfo(
__in HANDLE hDirectDraw,
__inout PDD_GETVPORTCONNECTDATA puGetVPortConnectData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpGetVideoSignalStatus(
__in HANDLE hVideoPort,
__inout PDD_GETVPORTSIGNALDATA puGetVPortSignalData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpUpdateVideoPort(
__in HANDLE hVideoPort,
__in HANDLE* phSurfaceVideo,
__in HANDLE* phSurfaceVbi,
__inout PDD_UPDATEVPORTDATA puUpdateVPortData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpWaitForVideoPortSync(
__in HANDLE hVideoPort,
__inout PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpAcquireNotification(
__in HANDLE hVideoPort,
__inout HANDLE* hEvent,
__in LPDDVIDEOPORTNOTIFY pNotify
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDvpReleaseNotification(
__in HANDLE hVideoPort,
__in HANDLE hEvent
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetMoCompGuids(
__in HANDLE hDirectDraw,
__inout PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetMoCompFormats(
__in HANDLE hDirectDraw,
__inout PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetMoCompBuffInfo(
__in HANDLE hDirectDraw,
__inout PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdGetInternalMoCompInfo(
__in HANDLE hDirectDraw,
__inout PDD_GETINTERNALMOCOMPDATA puGetInternalData
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiDdCreateMoComp(
__in HANDLE hDirectDraw,
__inout PDD_CREATEMOCOMPDATA puCreateMoCompData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdDestroyMoComp(
__in HANDLE hMoComp,
__inout PDD_DESTROYMOCOMPDATA puDestroyMoCompData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdBeginMoCompFrame(
__in HANDLE hMoComp,
__inout PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdEndMoCompFrame(
__in HANDLE hMoComp,
__inout PDD_ENDMOCOMPFRAMEDATA puEndFrameData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdRenderMoComp(
__in HANDLE hMoComp,
__inout PDD_RENDERMOCOMPDATA puRenderMoCompData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdQueryMoCompStatus(
__in HANDLE hMoComp,
__inout PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiDdAlphaBlt(
__in HANDLE hSurfaceDest,
__in_opt HANDLE hSurfaceSrc,
__inout PDD_BLTDATA puBltData
);
// Image32
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiAlphaBlend(
__in HDC hdcDst,
__in LONG DstX,
__in LONG DstY,
__in LONG DstCx,
__in LONG DstCy,
__in HDC hdcSrc,
__in LONG SrcX,
__in LONG SrcY,
__in LONG SrcCx,
__in LONG SrcCy,
__in BLENDFUNCTION BlendFunction,
__in HANDLE hcmXform
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGradientFill(
__in HDC hdc,
__in_ecount(nVertex) PTRIVERTEX pVertex,
__in ULONG nVertex,
__in PVOID pMesh,
__in ULONG nMesh,
__in ULONG ulMode
);
// icm (Image Color Matching)
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetIcmMode(
__in HDC hdc,
__in ULONG nCommand,
__in ULONG ulMode
);
#define ICM_SET_MODE 1
#define ICM_SET_CALIBRATE_MODE 2
#define ICM_SET_COLOR_MODE 3
#define ICM_CHECK_COLOR_MODE 4
typedef struct _LOGCOLORSPACEEXW
{
LOGCOLORSPACEW lcsColorSpace;
DWORD dwFlags;
} LOGCOLORSPACEEXW, *PLOGCOLORSPACEEXW;
#define LCSEX_ANSICREATED 0x0001 // Created by CreateColorSpaceA()
#define LCSEX_TEMPPROFILE 0x0002 // Color profile is temporary file
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiCreateColorSpace(
__in PLOGCOLORSPACEEXW pLogColorSpace
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDeleteColorSpace(
__in HANDLE hColorSpace
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetColorSpace(
__in HDC hdc,
__in HCOLORSPACE hColorSpace
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiCreateColorTransform(
__in HDC hdc,
__in LPLOGCOLORSPACEW pLogColorSpaceW,
__in_bcount_opt(cjSrcProfile) PVOID pvSrcProfile,
__in ULONG cjSrcProfile,
__in_bcount_opt(cjDestProfile) PVOID pvDestProfile,
__in ULONG cjDestProfile,
__in_bcount_opt(cjTargetProfile) PVOID pvTargetProfile,
__in ULONG cjTargetProfile
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDeleteColorTransform(
__in HDC hdc,
__in HANDLE hColorTransform
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiCheckBitmapBits(
__in HDC hdc,
__in HANDLE hColorTransform,
__in PVOID pvBits,
__in ULONG bmFormat,
__in DWORD dwWidth,
__in DWORD dwHeight,
__in DWORD dwStride,
__out_bcount(dwWidth * dwHeight) PBYTE paResults
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiColorCorrectPalette(
__in HDC hdc,
__in HPALETTE hpal,
__in ULONG FirstEntry,
__in ULONG NumberOfEntries,
__inout_ecount(NumberOfEntries) PALETTEENTRY *ppalEntry,
__in ULONG Command
);
__kernel_entry W32KAPI ULONG_PTR APIENTRY
NtGdiGetColorSpaceforBitmap(
__in HBITMAP hsurf
);
typedef enum _COLORPALETTEINFO
{
ColorPaletteQuery,
ColorPaletteSet
} COLORPALETTEINFO, *PCOLORPALETTEINFO;
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetDeviceGammaRamp(
__in HDC hdc,
__out_bcount(256*2*3) LPVOID lpGammaRamp
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetDeviceGammaRamp(
__in HDC hdc,
__in_bcount(256*2*3) LPVOID lpGammaRamp
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiIcmBrushInfo(
__in HDC hdc,
__in HBRUSH hbrush,
__inout_bcount(sizeof(BITMAPINFO) + ((/*MAX_COLORTABLE*/256 - 1) * sizeof(RGBQUAD))) PBITMAPINFO pbmiDIB,
__inout_bcount(*pulBits) PVOID pvBits,
__inout ULONG *pulBits,
__out_opt DWORD *piUsage,
__out_opt BOOL *pbAlreadyTran,
__in ULONG Command
);
typedef enum _ICM_DIB_INFO_CMD
{
IcmQueryBrush,
IcmSetBrush
} ICM_DIB_INFO, *PICM_DIB_INFO;
// PUBLIC
__kernel_entry W32KAPI VOID APIENTRY
NtGdiFlush();
__kernel_entry W32KAPI HDC APIENTRY
NtGdiCreateMetafileDC(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiMakeInfoDC(
__in HDC hdc,
__in BOOL bSet
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiCreateClientObj(
__in ULONG ulType
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDeleteClientObj(
__in HANDLE h
);
__kernel_entry W32KAPI LONG APIENTRY
NtGdiGetBitmapBits(
__in HBITMAP hbm,
__in ULONG cjMax,
__out_bcount_opt(cjMax) PBYTE pjOut
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDeleteObjectApp(
__in HANDLE hobj
);
__kernel_entry W32KAPI int APIENTRY
NtGdiGetPath(
__in HDC hdc,
__out_ecount_opt(cptBuf) LPPOINT pptlBuf,
__out_ecount_opt(cptBuf) LPBYTE pjTypes,
__in int cptBuf
);
__kernel_entry W32KAPI HDC APIENTRY
NtGdiCreateCompatibleDC(
__in_opt HDC hdc
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiCreateDIBitmapInternal(
__in HDC hdc,
__in INT cx,
__in INT cy,
__in DWORD fInit,
__in_bcount_opt(cjMaxBits) LPBYTE pjInit,
__in_bcount_opt(cjMaxInitInfo) LPBITMAPINFO pbmi,
__in DWORD iUsage,
__in UINT cjMaxInitInfo,
__in UINT cjMaxBits,
__in FLONG f,
__in HANDLE hcmXform
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiCreateDIBSection(
__in_opt HDC hdc,
__in_opt HANDLE hSectionApp,
__in DWORD dwOffset,
__in_bcount_opt(cjHeader) LPBITMAPINFO pbmi,
__in DWORD iUsage,
__in UINT cjHeader,
__in FLONG fl,
__in ULONG_PTR dwColorSpace,
__deref_out PVOID *ppvBits
);
__kernel_entry W32KAPI HBRUSH APIENTRY
NtGdiCreateSolidBrush(
__in COLORREF cr,
__in_opt HBRUSH hbr
);
__kernel_entry W32KAPI HBRUSH APIENTRY
NtGdiCreateDIBBrush(
__in_bcount(cj) PVOID pv,
__in FLONG fl,
__in UINT cj,
__in BOOL b8X8,
__in BOOL bPen,
__in PVOID pClient
);
__kernel_entry W32KAPI HBRUSH APIENTRY
NtGdiCreatePatternBrushInternal(
__in HBITMAP hbm,
__in BOOL bPen,
__in BOOL b8X8
);
__kernel_entry W32KAPI HBRUSH APIENTRY
NtGdiCreateHatchBrushInternal(
__in ULONG ulStyle,
__in COLORREF clrr,
__in BOOL bPen
);
__kernel_entry W32KAPI HPEN APIENTRY
NtGdiExtCreatePen(
__in ULONG flPenStyle,
__in ULONG ulWidth,
__in ULONG iBrushStyle,
__in ULONG ulColor,
__in ULONG_PTR lClientHatch,
__in ULONG_PTR lHatch,
__in ULONG cstyle,
__in_ecount_opt(cstyle) PULONG pulStyle,
__in ULONG cjDIB,
__in BOOL bOldStylePen,
__in_opt HBRUSH hbrush
);
__kernel_entry W32KAPI HRGN APIENTRY
NtGdiCreateEllipticRgn(
__in int xLeft,
__in int yTop,
__in int xRight,
__in int yBottom
);
__kernel_entry W32KAPI HRGN APIENTRY
NtGdiCreateRoundRectRgn(
__in int xLeft,
__in int yTop,
__in int xRight,
__in int yBottom,
__in int xWidth,
__in int yHeight
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiCreateServerMetaFile(
__in DWORD iType,
__in ULONG cjData,
__in_bcount(cjData) LPBYTE pjData,
__in DWORD mm,
__in DWORD xExt,
__in DWORD yExt
);
__kernel_entry W32KAPI HRGN APIENTRY
NtGdiExtCreateRegion(
__in_opt LPXFORM px,
__in DWORD cj,
__in_bcount(cj) LPRGNDATA prgn
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiMakeFontDir(
__in FLONG flEmbed,
__out_bcount(cjFontDir) PBYTE pjFontDir,
__in unsigned cjFontDir,
__in_bcount(cjPathname) LPWSTR pwszPathname,
__in unsigned cjPathname
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiPolyDraw(
__in HDC hdc,
__in_ecount(cpt) LPPOINT ppt,
__in_ecount(cpt) LPBYTE pjAttr,
__in ULONG cpt
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiPolyTextOutW(
__in HDC hdc,
__in_ecount(cStr) POLYTEXTW *pptw,
__in UINT cStr,
__in DWORD dwCodePage
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiGetServerMetaFileBits(
__in HANDLE hmo,
__in ULONG cjData,
__out_bcount_opt(cjData) LPBYTE pjData,
__out PDWORD piType,
__out PDWORD pmm,
__out PDWORD pxExt,
__out PDWORD pyExt
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEqualRgn(
__in HRGN hrgn1,
__in HRGN hrgn2
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetBitmapDimension(
__in HBITMAP hbm,
__out LPSIZE psize
);
__kernel_entry W32KAPI UINT APIENTRY
NtGdiGetNearestPaletteIndex(
__in HPALETTE hpal,
__in COLORREF crColor
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiPtVisible(
__in HDC hdc,
__in int x,
__in int y
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiRectVisible(
__in HDC hdc,
__in LPRECT prc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiRemoveFontResourceW(
__in_ecount(cwc) WCHAR *pwszFiles,
__in ULONG cwc,
__in ULONG cFiles,
__in ULONG fl,
__in DWORD dwPidTid,
__in_opt DESIGNVECTOR *pdv
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiResizePalette(
__in HPALETTE hpal,
__in UINT cEntry
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetBitmapDimension(
__in HBITMAP hbm,
__in int cx,
__in int cy,
__out_opt LPSIZE psizeOut
);
__kernel_entry W32KAPI int APIENTRY
NtGdiOffsetClipRgn(
__in HDC hdc,
__in int x,
__in int y
);
__kernel_entry W32KAPI int APIENTRY
NtGdiSetMetaRgn(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetTextJustification(
__in HDC hdc,
__in int lBreakExtra,
__in int cBreak
);
__kernel_entry W32KAPI int APIENTRY
NtGdiGetAppClipBox(
__in HDC hdc,
__out LPRECT prc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetTextExtentExW(
__in HDC hdc,
__in_ecount_opt(cwc) LPWSTR lpwsz,
__in ULONG cwc,
__in ULONG dxMax,
__out_opt ULONG *pcCh, // range(0, cwc)
__out_ecount_part_opt(cwc, *pcCh) PULONG pdxOut,
__out LPSIZE psize,
__in FLONG fl
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetCharABCWidthsW(
__in HDC hdc,
__in UINT wchFirst,
__in ULONG cwch,
__in_ecount_opt(cwch) PWCHAR pwch,
__in FLONG fl,
__out_bcount(cwch * sizeof(ABC)) __typefix(ABC *) PVOID pvBuf
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiGetCharacterPlacementW(
__in HDC hdc,
__in_ecount(nCount) LPWSTR pwsz,
__in int nCount,
__in int nMaxExtent,
__inout LPGCP_RESULTSW pgcpw,
__in DWORD dwFlags
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiAngleArc(
__in HDC hdc,
__in int x,
__in int y,
__in DWORD dwRadius,
__in DWORD dwStartAngle,
__in DWORD dwSweepAngle
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiBeginPath(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSelectClipPath(
__in HDC hdc,
__in int iMode
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiCloseFigure(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEndPath(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiAbortPath(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiFillPath(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiStrokeAndFillPath(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiStrokePath(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiWidenPath(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiFlattenPath(
__in HDC hdc
);
__kernel_entry W32KAPI HRGN APIENTRY
NtGdiPathToRegion(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetMiterLimit(
__in HDC hdc,
__in DWORD dwNew,
__inout_opt PDWORD pdwOut
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetFontXform(
__in HDC hdc,
__in DWORD dwxScale,
__in DWORD dwyScale
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetMiterLimit(
__in HDC hdc,
__out PDWORD pdwOut
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEllipse(
__in HDC hdc,
__in int xLeft,
__in int yTop,
__in int xRight,
__in int yBottom
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiRectangle(
__in HDC hdc,
__in int xLeft,
__in int yTop,
__in int xRight,
__in int yBottom
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiRoundRect(
__in HDC hdc,
__in int x1,
__in int y1,
__in int x2,
__in int y2,
__in int x3,
__in int y3
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiPlgBlt(
__in HDC hdcTrg,
__in_ecount(3) LPPOINT pptlTrg,
__in HDC hdcSrc,
__in int xSrc,
__in int ySrc,
__in int cxSrc,
__in int cySrc,
__in_opt HBITMAP hbmMask,
__in int xMask,
__in int yMask,
__in DWORD crBackColor
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiMaskBlt(
__in HDC hdc,
__in int xDst,
__in int yDst,
__in int cx,
__in int cy,
__in HDC hdcSrc,
__in int xSrc,
__in int ySrc,
__in HBITMAP hbmMask,
__in int xMask,
__in int yMask,
__in DWORD dwRop4,
__in DWORD crBackColor
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiExtFloodFill(
__in HDC hdc,
__in INT x,
__in INT y,
__in COLORREF crColor,
__in UINT iFillType
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiFillRgn(
__in HDC hdc,
__in HRGN hrgn,
__in HBRUSH hbrush
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiFrameRgn(
__in HDC hdc,
__in HRGN hrgn,
__in HBRUSH hbrush,
__in int xWidth,
__in int yHeight
);
__kernel_entry W32KAPI COLORREF APIENTRY
NtGdiSetPixel(
__in HDC hdcDst,
__in int x,
__in int y,
__in COLORREF crColor
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiGetPixel(
__in HDC hdc,
__in int x,
__in int y
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiStartPage(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEndPage(
__in HDC hdc
);
__kernel_entry W32KAPI int APIENTRY
NtGdiStartDoc(
__in HDC hdc,
__in DOCINFOW *pdi,
__out BOOL *pbBanding,
__in INT iJob
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEndDoc(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiAbortDoc(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiUpdateColors(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetCharWidthW(
__in HDC hdc,
__in UINT wcFirst,
__in UINT cwc,
__in_ecount_opt(cwc) PWCHAR pwc,
__in FLONG fl,
__out_bcount(cwc * sizeof(ULONG)) __typefix(PULONG) PVOID pvBuf
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetCharWidthInfo(
__in HDC hdc,
__out PCHWIDTHINFO pChWidthInfo
);
__kernel_entry W32KAPI int APIENTRY
NtGdiDrawEscape(
__in HDC hdc,
__in int iEsc,
__in int cjIn,
__in_bcount_opt(cjIn) LPSTR pjIn
);
__kernel_entry W32KAPI int APIENTRY
NtGdiExtEscape(
__in_opt HDC hdc,
__in_ecount_opt(nDriver) PWCHAR pDriver,
__in int nDriver,
__in int iEsc,
__in int cjIn,
__in_bcount_opt(cjIn) LPSTR pjIn,
__in int cjOut,
__out_bcount_opt(cjOut) LPSTR pjOut
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiGetFontData(
__in HDC hdc,
__in DWORD dwTable,
__in DWORD dwOffset,
__out_bcount_part_opt(cjBuf, return) PVOID pvBuf,
__in ULONG cjBuf
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiGetFontFileData(
__in UINT uFileCollectionID,
__in UINT uFileIndex,
__in ULONGLONG * pullFileOffset,
__out_bcount(cbSize) void * pBuffer,
__in SIZE_T cbSize
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiGetFontFileInfo(
__in UINT uFileCollectionID,
__in UINT uFileIndex,
__out_bcount(cbSize) FONT_FILE_INFO * pfi,
__in SIZE_T cbSize,
__out_opt SIZE_T * pcbActualSize
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiGetGlyphOutline(
__in HDC hdc,
__in WCHAR wch,
__in UINT iFormat,
__out LPGLYPHMETRICS pgm,
__in ULONG cjBuf,
__out_bcount_opt(cjBuf) PVOID pvBuf,
__in LPMAT2 pmat2,
__in BOOL bIgnoreRotation
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetETM(
__in HDC hdc,
__out_opt EXTTEXTMETRIC *petm
);
__kernel_entry W32KAPI __success(return == 1) BOOL APIENTRY
NtGdiGetRasterizerCaps(
__out_bcount(cjBytes) LPRASTERIZER_STATUS praststat,
__in ULONG cjBytes
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiGetKerningPairs(
__in HDC hdc,
__in ULONG cPairs,
__out_ecount_part_opt(cPairs, return) KERNINGPAIR *pkpDst
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiMonoBitmap(
__in HBITMAP hbm
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiGetObjectBitmapHandle(
__in HBRUSH hbr,
__out UINT *piUsage
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiEnumObjects(
__in HDC hdc,
__in int iObjectType,
__in ULONG cjBuf,
__out_bcount_opt(cjBuf) PVOID pvBuf
);
//
// NtGdiResetDC
//
// The actual size of the buffer at pdm is pdm->dmSize + pdm->dmDriverExtra.
// But this can not be specified with current annotation language.
//
typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiResetDC(
__in HDC hdc,
__in LPDEVMODEW pdm,
__out PBOOL pbBanding,
__in_opt DRIVER_INFO_2W *pDriverInfo2,
__out __typefix(PUMDHPDEV *) VOID *ppUMdhpdev
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiSetBoundsRect(
__in HDC hdc,
__in LPRECT prc,
__in DWORD f
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetColorAdjustment(
__in HDC hdc,
__out PCOLORADJUSTMENT pcaOut
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetColorAdjustment(
__in HDC hdc,
__in PCOLORADJUSTMENT pca
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiCancelDC(
__in HDC hdc
);
//
// See comment on NtGdiResetDC
//
__kernel_entry W32KAPI HDC APIENTRY
NtGdiOpenDCW(
__in_opt PUNICODE_STRING pustrDevice,
__in DEVMODEW *pdm,
__in PUNICODE_STRING pustrLogAddr,
__in ULONG iType,
__in BOOL bDisplay,
__in_opt HANDLE hspool,
__in_opt DRIVER_INFO_2W *pDriverInfo2,
__out __typefix(PUMDHPDEV *) VOID *pUMdhpdev
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetDCDword(
__in HDC hdc,
__in UINT u,
__out DWORD *Result
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetDCPoint(
__in HDC hdc,
__in UINT iPoint,
__out PPOINTL pptOut
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiScaleViewportExtEx(
__in HDC hdc,
__in int xNum,
__in int xDenom,
__in int yNum,
__in int yDenom,
__out_opt LPSIZE pszOut
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiScaleWindowExtEx(
__in HDC hdc,
__in int xNum,
__in int xDenom,
__in int yNum,
__in int yDenom,
__out_opt LPSIZE pszOut
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetVirtualResolution(
__in HDC hdc,
__in int cxVirtualDevicePixel,
__in int cyVirtualDevicePixel,
__in int cxVirtualDeviceMm,
__in int cyVirtualDeviceMm
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetSizeDevice(
__in HDC hdc,
__in int cxVirtualDevice,
__in int cyVirtualDevice
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetTransform(
__in HDC hdc,
__in DWORD iXform,
__out LPXFORM pxf
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiModifyWorldTransform(
__in HDC hdc,
__in_opt LPXFORM pxf,
__in DWORD iXform
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiCombineTransform(
__out LPXFORM pxfDst,
__in LPXFORM pxfSrc1,
__in LPXFORM pxfSrc2
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiTransformPoints(
__in HDC hdc,
__in_ecount(c) PPOINT pptIn,
__out_ecount(c) PPOINT pptOut,
__in int c,
__in int iMode
);
__kernel_entry W32KAPI LONG APIENTRY
NtGdiConvertMetafileRect(
__in HDC hdc,
__inout PRECTL prect
);
__kernel_entry W32KAPI int APIENTRY
NtGdiGetTextCharsetInfo(
__in HDC hdc,
__out_opt LPFONTSIGNATURE lpSig,
__in DWORD dwFlags
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDoBanding(
__in HDC hdc,
__in BOOL bStart,
__out POINTL *pptl,
__out PSIZE pSize
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiGetPerBandInfo(
__in HDC hdc,
__inout PERBANDINFO *ppbi
);
#define GS_NUM_OBJS_ALL 0
#define GS_HANDOBJ_CURRENT 1
#define GS_HANDOBJ_MAX 2
#define GS_HANDOBJ_ALLOC 3
#define GS_LOOKASIDE_INFO 4
__kernel_entry W32KAPI NTSTATUS APIENTRY
NtGdiGetStats(
__in HANDLE hProcess,
__in int iIndex,
__in int iPidType,
__out_bcount(cjResultSize) PVOID pResults,
__in UINT cjResultSize
);
//API's used by USER
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetMagicColors(
__in HDC hdc,
__in PALETTEENTRY peMagic,
__in ULONG Index
);
__kernel_entry W32KAPI HBRUSH APIENTRY
NtGdiSelectBrush(
__in HDC hdc,
__in HBRUSH hbrush
);
__kernel_entry W32KAPI HPEN APIENTRY
NtGdiSelectPen(
__in HDC hdc,
__in HPEN hpen
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiSelectBitmap(
__in HDC hdc,
__in HBITMAP hbm
);
__kernel_entry W32KAPI HFONT APIENTRY
NtGdiSelectFont(
__in HDC hdc,
__in HFONT hf
);
__kernel_entry W32KAPI int APIENTRY
NtGdiExtSelectClipRgn(
__in HDC hdc,
__in_opt HRGN hrgn,
__in int iMode
);
__kernel_entry W32KAPI HPEN APIENTRY
NtGdiCreatePen(
__in int iPenStyle,
__in int iPenWidth,
__in COLORREF cr,
__in_opt HBRUSH hbr
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiBitBlt(
__in HDC hdcDst,
__in int x,
__in int y,
__in int cx,
__in int cy,
__in_opt HDC hdcSrc,
__in int xSrc,
__in int ySrc,
__in DWORD rop4,
__in DWORD crBackColor,
__in FLONG fl
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiTileBitBlt(
__in HDC hdcDst,
__in RECTL * prectDst,
__in HDC hdcSrc,
__in RECTL * prectSrc,
__in POINTL * pptlOrigin,
__in DWORD rop4,
__in DWORD crBackColor
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiTransparentBlt(
__in HDC hdcDst,
__in int xDst,
__in int yDst,
__in int cxDst,
__in int cyDst,
__in HDC hdcSrc,
__in int xSrc,
__in int ySrc,
__in int cxSrc,
__in int cySrc,
__in COLORREF TransColor
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetTextExtent(
__in HDC hdc,
__in_ecount(cwc) LPWSTR lpwsz,
__in int cwc,
__out LPSIZE psize,
__in UINT flOpts
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetTextMetricsW(
__in HDC hdc,
__out_bcount(cj) TMW_INTERNAL * ptm,
__in ULONG cj
);
__kernel_entry W32KAPI int APIENTRY
NtGdiGetTextFaceW(
__in HDC hdc,
__in int cChar,
__out_ecount_part_opt(cChar, return) LPWSTR pszOut,
__in BOOL bAliasName
);
__kernel_entry W32KAPI int APIENTRY
NtGdiGetRandomRgn(
__in HDC hdc,
__in HRGN hrgn,
__in int iRgn
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiExtTextOutW(
__in HDC hdc,
__in int x,
__in int y,
__in UINT flOpts,
__in_opt LPRECT prcl,
__in_ecount_opt(cwc) LPWSTR pwsz,
__in_range(0, 0xffff) int cwc,
__in_xcount_opt(cwc) LPINT pdx,
__in DWORD dwCodePage
);
__kernel_entry W32KAPI int APIENTRY
NtGdiIntersectClipRect(
__in HDC hdc,
__in int xLeft,
__in int yTop,
__in int xRight,
__in int yBottom
);
__kernel_entry W32KAPI HRGN APIENTRY
NtGdiCreateRectRgn(
__in int xLeft,
__in int yTop,
__in int xRight,
__in int yBottom
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiPatBlt(
__in HDC hdcDst,
__in int x,
__in int y,
__in int cx,
__in int cy,
__in DWORD rop4
);
typedef struct _POLYPATBLT POLYPATBLT,*PPOLYPATBLT;
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiPolyPatBlt(
__in HDC hdc,
__in DWORD rop4,
__in_ecount(Count) PPOLYPATBLT pPoly,
__in DWORD Count,
__in DWORD Mode
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiUnrealizeObject(
__in HANDLE h
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiGetStockObject(
__in int iObject
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiCreateCompatibleBitmap(
__in HDC hdc,
__in int cx,
__in int cy
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiCreateBitmapFromDxSurface(
__in HDC hdc,
__in UINT uiWidth,
__in UINT uiHeight,
__in DWORD Format,
__in_opt HANDLE hDxSharedSurface
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiBeginGdiRendering(
__in HBITMAP hbm,
__in BOOL bDiscard
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEndGdiRendering(
__in HBITMAP hbm,
__in BOOL bDiscard,
__out BOOL* pbDeviceRemoved
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiLineTo(
__in HDC hdc,
__in int x,
__in int y
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiMoveTo(
__in HDC hdc,
__in int x,
__in int y,
__out_opt LPPOINT pptOut
);
__kernel_entry W32KAPI int APIENTRY
NtGdiExtGetObjectW(
__in HANDLE h,
__in int cj,
__out_bcount_opt(cj) LPVOID pvOut
);
__kernel_entry W32KAPI int APIENTRY
NtGdiGetDeviceCaps(
__in HDC hdc,
__in int i
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiGetDeviceCapsAll (
__in_opt HDC hdc,
__out PDEVCAPS pDevCaps
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiStretchBlt(
__in HDC hdcDst,
__in int xDst,
__in int yDst,
__in int cxDst,
__in int cyDst,
__in_opt HDC hdcSrc,
__in int xSrc,
__in int ySrc,
__in int cxSrc,
__in int cySrc,
__in DWORD dwRop,
__in DWORD dwBackColor
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetBrushOrg(
__in HDC hdc,
__in int x,
__in int y,
__out LPPOINT pptOut
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiCreateBitmap(
__in int cx,
__in int cy,
__in UINT cPlanes,
__in UINT cBPP,
__in_opt LPBYTE pjInit
);
__kernel_entry W32KAPI HPALETTE APIENTRY
NtGdiCreateHalftonePalette(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiRestoreDC(
__in HDC hdc,
__in int iLevel
);
__kernel_entry W32KAPI int APIENTRY
NtGdiExcludeClipRect(
__in HDC hdc,
__in int xLeft,
__in int yTop,
__in int xRight,
__in int yBottom
);
__kernel_entry W32KAPI int APIENTRY
NtGdiSaveDC(
__in HDC hdc
);
__kernel_entry W32KAPI int APIENTRY
NtGdiCombineRgn(
__in HRGN hrgnDst,
__in HRGN hrgnSrc1,
__in HRGN hrgnSrc2,
__in int iMode
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSetRectRgn(
__in HRGN hrgn,
__in int xLeft,
__in int yTop,
__in int xRight,
__in int yBottom
);
__kernel_entry W32KAPI LONG APIENTRY
NtGdiSetBitmapBits(
__in HBITMAP hbm,
__in ULONG cj,
__in_bcount(cj) PBYTE pjInit
);
__kernel_entry W32KAPI int APIENTRY
NtGdiGetDIBitsInternal(
__in HDC hdc,
__in HBITMAP hbm,
__in UINT iStartScan,
__in UINT cScans,
__out_bcount_opt(cjMaxBits) LPBYTE pBits,
__inout LPBITMAPINFO pbmi,
__in UINT iUsage,
__in UINT cjMaxBits,
__in UINT cjMaxInfo
);
__kernel_entry W32KAPI int APIENTRY
NtGdiOffsetRgn(
__in HRGN hrgn,
__in int cx,
__in int cy
);
__kernel_entry W32KAPI int APIENTRY
NtGdiGetRgnBox(
__in HRGN hrgn,
__out LPRECT prcOut
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiRectInRegion(
__in HRGN hrgn,
__inout LPRECT prcl
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiGetBoundsRect(
__in HDC hdc,
__out LPRECT prc,
__in DWORD f
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiPtInRegion(
__in HRGN hrgn,
__in int x,
__in int y
);
__kernel_entry W32KAPI COLORREF APIENTRY
NtGdiGetNearestColor(
__in HDC hdc,
__in COLORREF cr
);
__kernel_entry W32KAPI UINT APIENTRY
NtGdiGetSystemPaletteUse(
__in HDC hdc
);
__kernel_entry W32KAPI UINT APIENTRY
NtGdiSetSystemPaletteUse(
__in HDC hdc,
__in UINT ui
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiGetRegionData(
__in HRGN hrgn,
__in DWORD nCount,
__out_bcount_part_opt(nCount, return) LPRGNDATA lpRgnData
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiInvertRgn(
__in HDC hdc,
__in HRGN hrgn
);
// MISC FONT API's
__kernel_entry int W32KAPI APIENTRY
NtGdiAddFontResourceW(
__in_ecount(cwc) WCHAR *pwszFiles,
__in ULONG cwc,
__in ULONG cFiles,
__in FLONG f,
__in DWORD dwPidTid,
__in_opt DESIGNVECTOR *pdv
);
#if (_WIN32_WINNT >= 0x0500)
__kernel_entry W32KAPI HFONT APIENTRY
NtGdiHfontCreate(
__in_bcount(cjElfw) ENUMLOGFONTEXDVW *pelfw,
__in ULONG cjElfw,
__in LFTYPE lft,
__in FLONG fl,
__in PVOID pvCliData
);
#else
__kernel_entry W32KAPI HFONT APIENTRY
NtGdiHfontCreate(
__in LPEXTLOGFONTW pelfw,
__in ULONG cjElfw,
__in LFTYPE lft,
__in FLONG fl,
__in PVOID pvCliData
);
#endif
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiSetFontEnumeration(
__in ULONG ulType
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEnumFonts(
__in HDC hdc,
__in ULONG iEnumType,
__in FLONG flWin31Compat,
__in ULONG cchFaceName,
__in_ecount_opt(cchFaceName) LPCWSTR pwszFaceName,
__in ULONG lfCharSet,
__inout ULONG *pulCount,
__out_bcount_opt(*pulCount) void * pvUserModeBuffer
);
#define TYPE_ENUMFONTS 1
#define TYPE_ENUMFONTFAMILIES 2
#define TYPE_ENUMFONTFAMILIESEX 3
__kernel_entry W32KAPI INT APIENTRY
NtGdiQueryFonts(
__out_ecount(nBufferSize) PUNIVERSAL_FONT_ID pufiFontList,
__in ULONG nBufferSize,
__out PLARGE_INTEGER pTimeStamp
);
// needed for win95 functionality
__kernel_entry W32KAPI DWORD
NtGdiGetCharSet(
__in HDC hdc
);
// needed for fontlinking
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEnableEudc(
__in BOOL
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEudcLoadUnloadLink(
__in_ecount_opt(cwcBaseFaceName) LPCWSTR pBaseFaceName,
__in UINT cwcBaseFaceName,
__in_ecount(cwcEudcFontPath) LPCWSTR pEudcFontPath,
__in UINT cwcEudcFontPath,
__in INT iPriority,
__in INT iFontLinkType,
__in BOOL bLoadLin
);
__kernel_entry W32KAPI UINT APIENTRY
NtGdiGetStringBitmapW(
__in HDC hdc,
__in LPWSTR pwsz,
__in UINT cwc,
__in UINT cj,
__out_bcount(cj) BYTE *lpSB
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiGetEudcTimeStampEx(
__in_ecount_opt(cwcBaseFaceName) LPWSTR lpBaseFaceName,
__in ULONG cwcBaseFaceName,
__in BOOL bSystemTimeStamp
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiQueryFontAssocInfo(
__in HDC hdc
);
#if (_WIN32_WINNT >= 0x0500)
__kernel_entry W32KAPI DWORD
NtGdiGetFontUnicodeRanges(
__in HDC hdc,
__out_post_bcount_opt(return) LPGLYPHSET pgs
);
#endif
__kernel_entry W32KAPI BOOL
NtGdiGetRealizationInfo(
__in HDC hdc,
__out PFONT_REALIZATION_INFO pri
);
typedef struct tagDOWNLOADDESIGNVECTOR {
UNIVERSAL_FONT_ID ufiBase;
DESIGNVECTOR dv;
} DOWNLOADDESIGNVECTOR;
__kernel_entry W32KAPI BOOL
NtGdiAddRemoteMMInstanceToDC(
__in HDC hdc,
__in_bcount(cjDDV) DOWNLOADDESIGNVECTOR *pddv,
__in ULONG cjDDV
);
// user-mode printer support
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiUnloadPrinterDriver(
__in_bcount(cbDriverName) LPWSTR pDriverName,
__in ULONG cbDriverName
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngAssociateSurface(
__in HSURF hsurf,
__in HDEV hdev,
__in FLONG flHooks
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngEraseSurface(
__in SURFOBJ *pso,
__in RECTL *prcl,
__in ULONG iColor
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiEngCreateBitmap(
__in SIZEL sizl,
__in LONG lWidth,
__in ULONG iFormat,
__in FLONG fl,
__in_opt PVOID pvBits
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngDeleteSurface(
__in HSURF hsurf
);
__kernel_entry W32KAPI SURFOBJ* APIENTRY
NtGdiEngLockSurface(
__in HSURF hsurf
);
__kernel_entry W32KAPI VOID APIENTRY
NtGdiEngUnlockSurface(
__in SURFOBJ *
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngMarkBandingSurface(
__in HSURF hsurf
);
__kernel_entry W32KAPI HSURF APIENTRY
NtGdiEngCreateDeviceSurface(
__in DHSURF dhsurf,
__in SIZEL sizl,
__in ULONG iFormatCompat
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiEngCreateDeviceBitmap(
__in DHSURF dhsurf,
__in SIZEL sizl,
__in ULONG iFormatCompat
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngCopyBits(
__in SURFOBJ *psoDst,
__in SURFOBJ *psoSrc,
__in_opt CLIPOBJ *pco,
__in XLATEOBJ *pxlo,
__in RECTL *prclDst,
__in POINTL *pptlSrc
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngStretchBlt(
__in SURFOBJ *psoDest,
__in SURFOBJ *psoSrc,
__in SURFOBJ *psoMask,
__in CLIPOBJ *pco,
__in XLATEOBJ *pxlo,
__in COLORADJUSTMENT *pca,
__in POINTL *pptlHTOrg,
__in RECTL *prclDest,
__in RECTL *prclSrc,
__in POINTL *pptlMask,
__in ULONG iMode
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngBitBlt(
__in SURFOBJ *psoDst,
__in SURFOBJ *psoSrc,
__in SURFOBJ *psoMask,
__in CLIPOBJ *pco,
__in XLATEOBJ *pxlo,
__in RECTL *prclDst,
__in POINTL *pptlSrc,
__in POINTL *pptlMask,
__in BRUSHOBJ *pbo,
__in POINTL *pptlBrush,
__in ROP4 rop4
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngPlgBlt(
__in SURFOBJ *psoTrg,
__in SURFOBJ *psoSrc,
__in_opt SURFOBJ *psoMsk,
__in CLIPOBJ *pco,
__in XLATEOBJ *pxlo,
__in COLORADJUSTMENT *pca,
__in POINTL *pptlBrushOrg,
__in POINTFIX *pptfxDest,
__in RECTL *prclSrc,
__in_opt POINTL *pptlMask,
__in ULONG iMode
);
__kernel_entry W32KAPI HPALETTE APIENTRY
NtGdiEngCreatePalette(
__in ULONG iMode,
__in ULONG cColors,
__in ULONG *pulColors,
__in FLONG flRed,
__in FLONG flGreen,
__in FLONG flBlue
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngDeletePalette(
__in HPALETTE hPal
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngStrokePath(
__in SURFOBJ *pso,
__in PATHOBJ *ppo,
__in CLIPOBJ *pco,
__in XFORMOBJ *pxo,
__in BRUSHOBJ *pbo,
__in POINTL *pptlBrushOrg,
__in LINEATTRS *plineattrs,
__in MIX mix
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngFillPath(
__in SURFOBJ *pso,
__in PATHOBJ *ppo,
__in CLIPOBJ *pco,
__in BRUSHOBJ *pbo,
__in POINTL *pptlBrushOrg,
__in MIX mix,
__in FLONG flOptions
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngStrokeAndFillPath(
__in SURFOBJ *pso,
__in PATHOBJ *ppo,
__in CLIPOBJ *pco,
__in XFORMOBJ *pxo,
__in BRUSHOBJ *pboStroke,
__in LINEATTRS *plineattrs,
__in BRUSHOBJ *pboFill,
__in POINTL *pptlBrushOrg,
__in MIX mix,
__in FLONG flOptions
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngPaint(
__in SURFOBJ *pso,
__in CLIPOBJ *pco,
__in BRUSHOBJ *pbo,
__in POINTL *pptlBrushOrg,
__in MIX mix
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngLineTo(
__in SURFOBJ *pso,
__in CLIPOBJ *pco,
__in BRUSHOBJ *pbo,
__in LONG x1,
__in LONG y1,
__in LONG x2,
__in LONG y2,
__in RECTL *prclBounds,
__in MIX mix
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngAlphaBlend(
__in SURFOBJ *psoDest,
__in SURFOBJ *psoSrc,
__in CLIPOBJ *pco,
__in XLATEOBJ *pxlo,
__in RECTL *prclDest,
__in RECTL *prclSrc,
__in BLENDOBJ *pBlendObj
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngGradientFill(
__in SURFOBJ *psoDest,
__in CLIPOBJ *pco,
__in XLATEOBJ *pxlo,
__in_ecount(nVertex) TRIVERTEX *pVertex,
__in ULONG nVertex,
__in_ecount(nMesh) PVOID pMesh,
__in ULONG nMesh,
__in RECTL *prclExtents,
__in POINTL *pptlDitherOrg,
__in ULONG ulMode
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngTransparentBlt(
__in SURFOBJ *psoDst,
__in SURFOBJ *psoSrc,
__in CLIPOBJ *pco,
__in XLATEOBJ *pxlo,
__in RECTL *prclDst,
__in RECTL *prclSrc,
__in ULONG iTransColor,
__in ULONG ulReserved
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngTextOut(
__in SURFOBJ *pso,
__in STROBJ *pstro,
__in FONTOBJ *pfo,
__in CLIPOBJ *pco,
__in RECTL *prclExtra,
__in RECTL *prclOpaque,
__in BRUSHOBJ *pboFore,
__in BRUSHOBJ *pboOpaque,
__in POINTL *pptlOrg,
__in MIX mix
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngStretchBltROP(
__in SURFOBJ *psoTrg,
__in SURFOBJ *psoSrc,
__in SURFOBJ *psoMask,
__in CLIPOBJ *pco,
__in XLATEOBJ *pxlo,
__in COLORADJUSTMENT *pca,
__in POINTL *pptlBrushOrg,
__in RECTL *prclTrg,
__in RECTL *prclSrc,
__in POINTL *pptlMask,
__in ULONG iMode,
__in BRUSHOBJ *pbo,
__in ROP4 rop4
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiXLATEOBJ_cGetPalette(
__in XLATEOBJ *pxlo,
__in ULONG iPal,
__in ULONG cPal,
__out_ecount(cPal) ULONG *pPal
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiCLIPOBJ_cEnumStart(
__in CLIPOBJ *pco,
__in BOOL bAll,
__in ULONG iType,
__in ULONG iDirection,
__in ULONG cLimit
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiCLIPOBJ_bEnum(
__in CLIPOBJ *pco,
__in ULONG cj,
__out_bcount(cj) ULONG *pul
);
__kernel_entry W32KAPI PATHOBJ* APIENTRY
NtGdiCLIPOBJ_ppoGetPath(
__in CLIPOBJ *pco
);
__kernel_entry W32KAPI CLIPOBJ* APIENTRY
NtGdiEngCreateClip();
__kernel_entry W32KAPI VOID APIENTRY
NtGdiEngDeleteClip(
__in CLIPOBJ*pco
);
__kernel_entry W32KAPI PVOID APIENTRY
NtGdiBRUSHOBJ_pvAllocRbrush(
__in BRUSHOBJ *pbo,
__in ULONG cj
);
__kernel_entry W32KAPI PVOID APIENTRY
NtGdiBRUSHOBJ_pvGetRbrush(
__in BRUSHOBJ *pbo
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiBRUSHOBJ_ulGetBrushColor(
__in BRUSHOBJ *pbo
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiBRUSHOBJ_hGetColorTransform(
__in BRUSHOBJ *pbo
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiXFORMOBJ_bApplyXform(
__in XFORMOBJ *pxo,
__in ULONG iMode,
__in ULONG cPoints,
__in_ecount(cPoints) POINTL *pvIn,
__out_ecount(cPoints) POINTL *pvOut
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiXFORMOBJ_iGetXform(
__in XFORMOBJ *pxo,
__out_opt XFORML *pxform
);
__kernel_entry W32KAPI VOID APIENTRY
NtGdiFONTOBJ_vGetInfo(
__in FONTOBJ *pfo,
__in ULONG cjSize,
__out_bcount(cjSize) FONTINFO *pfi
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiFONTOBJ_cGetGlyphs(
__in FONTOBJ *pfo,
__in ULONG iMode,
__in ULONG cGlyph,
__in HGLYPH *phg,
__deref_out __typefix(PGLYPHDATA *) PVOID *ppvGlyph
);
__kernel_entry W32KAPI XFORMOBJ* APIENTRY
NtGdiFONTOBJ_pxoGetXform(
__in FONTOBJ *pfo
);
__kernel_entry W32KAPI IFIMETRICS* APIENTRY
NtGdiFONTOBJ_pifi(
__in FONTOBJ *pfo
);
__kernel_entry W32KAPI FD_GLYPHSET* APIENTRY
NtGdiFONTOBJ_pfdg(
__in FONTOBJ *pfo
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiFONTOBJ_cGetAllGlyphHandles(
__in FONTOBJ *pfo,
__out_post_ecount_opt(return) HGLYPH *phg
);
__kernel_entry W32KAPI PVOID APIENTRY
NtGdiFONTOBJ_pvTrueTypeFontFile(
__in FONTOBJ *pfo,
__out ULONG *pcjFile
);
__kernel_entry W32KAPI PFD_GLYPHATTR APIENTRY
NtGdiFONTOBJ_pQueryGlyphAttrs(
__in FONTOBJ *pfo,
__in ULONG iMode
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSTROBJ_bEnum(
__in STROBJ *pstro,
__out ULONG *pc,
__deref_out_ecount(*pc) PGLYPHPOS *ppgpos
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSTROBJ_bEnumPositionsOnly(
__in STROBJ *pstro,
__out ULONG *pc,
__deref_out_ecount(*pc) PGLYPHPOS *ppgpos
);
__kernel_entry W32KAPI VOID APIENTRY
NtGdiSTROBJ_vEnumStart(
__in STROBJ *pstro
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiSTROBJ_dwGetCodePage(
__in STROBJ *pstro
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiSTROBJ_bGetAdvanceWidths(
__in STROBJ*pstro,
__in ULONG iFirst,
__in ULONG c,
__out_ecount(c) POINTQF*pptqD
);
__kernel_entry W32KAPI FD_GLYPHSET* APIENTRY
NtGdiEngComputeGlyphSet(
__in INT nCodePage,
__in INT nFirstChar,
__in INT cChars
);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiXLATEOBJ_iXlate(
__in XLATEOBJ *pxlo,
__in ULONG iColor
);
__kernel_entry W32KAPI HANDLE APIENTRY
NtGdiXLATEOBJ_hGetColorTransform(
__in XLATEOBJ *pxlo
);
__kernel_entry W32KAPI VOID APIENTRY
NtGdiPATHOBJ_vGetBounds(
__in PATHOBJ *ppo,
__out PRECTFX prectfx
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiPATHOBJ_bEnum(
__in PATHOBJ *ppo,
__out PATHDATA *ppd
);
__kernel_entry W32KAPI VOID APIENTRY
NtGdiPATHOBJ_vEnumStart(
__in PATHOBJ *ppo
);
__kernel_entry W32KAPI VOID APIENTRY
NtGdiEngDeletePath(
__in PATHOBJ *ppo
);
__kernel_entry W32KAPI VOID APIENTRY
NtGdiPATHOBJ_vEnumStartClipLines(
__in PATHOBJ *ppo,
__in CLIPOBJ *pco,
__in SURFOBJ *pso,
__in LINEATTRS *pla
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiPATHOBJ_bEnumClipLines(
__in PATHOBJ *ppo,
__in ULONG cb,
__out_bcount(cb) CLIPLINE *pcl
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiEngCheckAbort(
__in SURFOBJ *pso
);
__kernel_entry W32KAPI DHPDEV
NtGdiGetDhpdev(
__in HDEV hdev
);
__kernel_entry W32KAPI LONG APIENTRY
NtGdiHT_Get8BPPFormatPalette(
__out_post_ecount_opt(return) LPPALETTEENTRY pPaletteEntry,
__in USHORT RedGamma,
__in USHORT GreenGamma,
__in USHORT BlueGamma
);
__kernel_entry W32KAPI LONG APIENTRY
NtGdiHT_Get8BPPMaskPalette(
__out_post_ecount_opt(return) LPPALETTEENTRY pPaletteEntry,
__in BOOL Use8BPPMaskPal,
__in BYTE CMYMask,
__in USHORT RedGamma,
__in USHORT GreenGamma,
__in USHORT BlueGamma
);
__kernel_entry W32KAPI BOOL
NtGdiUpdateTransform(
__in HDC hdc
);
__kernel_entry W32KAPI DWORD APIENTRY
NtGdiSetLayout(
__in HDC hdc,
__in LONG wox,
__in DWORD dwLayout
);
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiMirrorWindowOrg(
__in HDC hdc
);
__kernel_entry W32KAPI LONG APIENTRY
NtGdiGetDeviceWidth(
__in HDC hdc
);
__kernel_entry W32KAPI BOOL
NtGdiSetPUMPDOBJ(
__in_opt HUMPD humpd,
__in BOOL bStoreID,
__inout_opt HUMPD *phumpd,
__out_opt BOOL *pbWOW64
);
__kernel_entry W32KAPI BOOL
NtGdiBRUSHOBJ_DeleteRbrush(
__in_opt BRUSHOBJ *pbo,
__in_opt BRUSHOBJ *pboB
);
__kernel_entry W32KAPI BOOL
NtGdiUMPDEngFreeUserMem(
__in KERNEL_PVOID *ppv
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiSetBitmapAttributes(
__in HBITMAP hbm,
__in DWORD dwFlags
);
__kernel_entry W32KAPI HBITMAP APIENTRY
NtGdiClearBitmapAttributes(
__in HBITMAP hbm,
__in DWORD dwFlags
);
__kernel_entry W32KAPI HBRUSH APIENTRY
NtGdiSetBrushAttributes(
__in HBRUSH hbm,
__in DWORD dwFlags
);
__kernel_entry W32KAPI HBRUSH APIENTRY
NtGdiClearBrushAttributes(
__in HBRUSH hbr,
__in DWORD dwFlags
);
// Private draw stream interface
__kernel_entry W32KAPI BOOL APIENTRY
NtGdiDrawStream(
__in HDC hdcDst,
__in ULONG cjIn,
__in_bcount(cjIn) VOID *pvIn
);
// Private Xfer interfaces
__kernel_entry W32KAPI BOOL APIENTRY NtGdiMakeObjectXferable(IN HANDLE h, IN DWORD dwProcessId);
__kernel_entry W32KAPI BOOL APIENTRY NtGdiMakeObjectUnXferable(IN HANDLE h);
// Private DWM interfaces
__kernel_entry W32KAPI BOOL
NtGdiSfmGetNotificationTokens(
__in UINT cBytes,
__out UINT* pNrOfTokensReturned,
PVOID pTokenBuffer);
__kernel_entry W32KAPI BOOL
NtGdiSfmRegisterLogicalSurfaceForSignaling(
__in HLSURF hlsurf,
BOOL fSignalOnDirty);
__kernel_entry W32KAPI BOOL
NtGdiDwmGetHighColorMode(
__out DXGI_FORMAT* pdxgiFormat);
__kernel_entry W32KAPI BOOL
NtGdiDwmSetHighColorMode(
__in DXGI_FORMAT dxgiFormat);
__kernel_entry W32KAPI HANDLE
NtGdiDwmCaptureScreen(
__in const RECT* prcCapture,
__in DXGI_FORMAT dxgiFormat);
__kernel_entry W32KAPI NTSTATUS APIENTRY
NtGdiDdCreateFullscreenSprite(
__in HDC hdc,
__in COLORREF crKey,
__out HANDLE* phSprite,
__out HDC* phdcSprite);
__kernel_entry W32KAPI NTSTATUS APIENTRY
NtGdiDdNotifyFullscreenSpriteUpdate(
__in HDC hdc,
__in HANDLE hSprite);
__kernel_entry W32KAPI NTSTATUS APIENTRY
NtGdiDdDestroyFullscreenSprite(
__in HDC hdc,
__in HANDLE hSprite);
__kernel_entry W32KAPI ULONG APIENTRY
NtGdiDdQueryVisRgnUniqueness();
__kernel_entry
W32KAPI BOOL APIENTRY NtGdiHLSurfGetInformation(
__in HLSURF hLsurf,
__in HLSURF_INFORMATION_CLASS InformationClass,
__in_bcount_opt(*pulInformationLength) PVOID InformationBuffer,
__inout PULONG pulInformationLength
);
__kernel_entry
W32KAPI BOOL APIENTRY NtGdiHLSurfSetInformation(
__in HLSURF hLsurf,
__in HLSURF_INFORMATION_CLASS InformationClass,
__in_bcount_opt(InformationLength) PVOID InformationBuffer,
__in ULONG InformationLength
);