Author: tkreuzer Date: Thu Oct 2 20:11:24 2014 New Revision: 64471
URL: http://svn.reactos.org/svn/reactos?rev=64471&view=rev Log: [PSDK] Add missing definitions to winddi.h
Modified: trunk/reactos/include/psdk/winddi.h trunk/reactos/win32ss/gdi/eng/ldevobj.c trunk/reactos/win32ss/reactx/ntddraw/eng.c
Modified: trunk/reactos/include/psdk/winddi.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winddi.h?rev=6... ============================================================================== --- trunk/reactos/include/psdk/winddi.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/winddi.h [iso-8859-1] Thu Oct 2 20:11:24 2014 @@ -29,6 +29,7 @@ #error video.h cannot be included with winddi.h #else
+//#include <winapifamily.h> #include <ddrawint.h> #include <d3dnthal.h> #include <specstrings.h> @@ -42,10 +43,62 @@ #endif
#if defined(_ENGINE_EXPORT_) -#define ENGAPI + #define ENGAPI #else -#define ENGAPI DECLSPEC_IMPORT + #define ENGAPI DECLSPEC_IMPORT #endif + +#ifndef _NO_DDRAWINT_NO_COM + +#if !defined(EXTERN_C) + #ifdef __cplusplus + #define EXTERN_C extern "C" + #define __EXTERN_C extern "C" + #else + #define EXTERN_C extern + #define __EXTERN_C + #endif +#endif /* !defined(EXTERN_C) */ + +#if !defined(DEFINE_GUID) + #ifdef INITGUID + #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + __EXTERN_C const GUID name = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } + #else /* !INITGUID */ + #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ + EXTERN_C const GUID FAR name + #endif /* !INITGUID */ +#endif /* !defined(DEFINE_GUID) */ + +#if !defined(DEFINE_GUIDEX) + #define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name +#endif /* !defined(DEFINE_GUIDEX) */ + +#if !defined(STATICGUIDOF) + #define STATICGUIDOF(guid) STATIC_##guid +#endif /* !defined(STATICGUIDOF) */ + +#if !defined(GUID_DEFINED) + #define GUID_DEFINED + typedef struct _GUID + { + ULONG Data1; + USHORT Data2; + USHORT Data3; + UCHAR Data4[8]; + } GUID; +#endif /* !defined(GUID_DEFINED) */ + +#if !defined(IsEqualGUID) + #define IsEqualGUID(guid1, guid2) \ + (!memcmp((guid1), (guid2), sizeof(GUID))) +#endif /* !defined(IsEqualGUID) */ + +#ifndef IsEqualIID + #define IsEqualIID IsEqualGUID +#endif /* !defined(IsEqualIID) */ + +#endif /* !_NO_DDRAWINT_NO_COM */
#define DDI_DRIVER_VERSION_NT4 0x00020000 #define DDI_DRIVER_VERSION_SP3 0x00020003 @@ -85,6 +138,9 @@ DECLARE_HANDLE(DHSURF); DECLARE_HANDLE(DHPDEV); DECLARE_HANDLE(HDRVOBJ); +DECLARE_HANDLE(HSEMAPHORE); + +typedef _Return_type_success_(return >= 0) long NTSTATUS;
#ifndef _NTDDVDEO_ typedef struct _ENG_EVENT *PEVENT; @@ -108,6 +164,14 @@ #define DN_DEVICE_ORIGIN 2 #define DN_SLEEP_MODE 3 #define DN_DRAWING_BEGIN 4 +#if (NTDDI_VERSION >= NTDDI_WIN8) +#define DN_ASSOCIATE_WINDOW 5 +#define DN_COMPOSITION_CHANGED 6 +#define DN_DRAWING_BEGIN_APIBITMAP 7 +#define DN_SURFOBJ_DESTRUCTION 8 +#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */ + +#define SGI_EXTRASPACE 0
#define DCR_SOLID 0 #define DCR_DRIVER 1 @@ -123,6 +187,10 @@ #define FXTOLFLOOR(x) ((x) >> 4) #define FXTOLCEILING(x) ((x + 0x0F) >> 4) #define FXTOLROUND(x) ((((x) >> 3) + 1) >> 1) + +#define SIZEOFDV(cAxes) (offsetof(DESIGNVECTOR, dvValues) + (cAxes) * sizeof(LONG)) +#define SIZEOFAXIW(cAxes) (offsetof(AXESLISTW, axlAxisInfo) + (cAxes) * sizeof(AXISINFOW)) +#define SIZEOFAXIA(cAxes) (offsetof(AXESLISTA, axlAxisInfo) + (cAxes) * sizeof(AXISINFOA))
typedef struct _POINTE { FLOATL x; @@ -306,6 +374,17 @@ #define GCAPS2_ICD_MULTIMON 0x00000100 #define GCAPS2_MOUSETRAILS 0x00000200 #define GCAPS2_RESERVED1 0x00000400 +#if (NTDDI_VERSION >= NTDDI_VISTA) +#define GCAPS2_EXCLUDELAYERED 0x00000800 +#define GCAPS2_INCLUDEAPIBITMAPS 0x00001000 +#define GCAPS2_SHOWHIDDENPOINTER 0x00002000 +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ +#if (NTDDI_VERSION >= NTDDI_WIN7) +#define GCAPS2_CLEARTYPE 0x00004000 +#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */ +#if (NTDDI_VERSION >= NTDDI_WIN8) +#define GCAPS2_ACC_DRIVER 0x00008000 +#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
typedef struct _DEVINFO { FLONG flGraphicsCaps; @@ -465,8 +544,11 @@ DRVFN *pdrvfn; } DRVENABLEDATA, *PDRVENABLEDATA;
-DECLARE_HANDLE(HSEMAPHORE); - +/* Font file status values */ +#define FF_SIGNATURE_VERIFIED 0x00000001L +#define FF_IGNORED_SIGNATURE 0x00000002L + + /* Obsolete in Windows 2000 and later */ typedef struct { DWORD nSize; HDC hdc; @@ -569,6 +651,22 @@ FWORD fwdKern; } FD_KERNINGPAIR;
+ /* Obsolete in Windows 2000 and later */ +typedef struct _LIGATURE { + ULONG culSize; + LPWSTR pwsz; + ULONG chglyph; + HGLYPH ahglyph[1]; +} LIGATURE, *PLIGATURE; + + /* Obsolete in Windows 2000 and later */ +typedef struct _FD_LIGATURE { + ULONG culThis; + ULONG ulType; + ULONG cLigatures; + LIGATURE alig[1]; +} FD_LIGATURE; + #if defined(_X86_) && !defined(USERMODE_DRIVER) typedef struct _FLOATOBJ { @@ -654,6 +752,11 @@ #define FO_NOCLEARTYPE 0x02000000 #define FO_CLEARTYPE_X 0x10000000 #define FO_CLEARTYPE_Y 0x20000000 +#define FO_CLEARTYPENATURAL_X 0x40000000 + +#define FD_NEGATIVE_FONT 1L /* Obsolete in Windows 2000 and later */ +#define FO_DEVICE_FONT 1L +#define FO_OUTLINE_CAPABLE 2L
typedef struct _FONTOBJ { ULONG iUniq; @@ -842,6 +945,9 @@ #define PO_ELLIPSE 0x00000002 #define PO_ALL_INTEGERS 0x00000004 #define PO_ENUM_AS_INTEGERS 0x00000008 +#if (NTDDI_VERSION >= NTDDI_WIN7) +#define PO_WIDENED 0x00000010 +#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
typedef struct _PATHOBJ { FLONG fl; @@ -932,7 +1038,7 @@ #define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000 #define FM_INFO_TECH_TYPE1 0x80000000
-#define MAXCHARSETS 16 +#define MAXCHARSETS 16 /* Obsolete in Windows 2000 and later */
/* IFIMETRICS.ulPanoseCulture constants */ #define FM_PANOSE_CULTURE_LATIN 0x0 @@ -1079,7 +1185,21 @@ #define BMF_NOTSYSMEM 0x0020 #define BMF_WINDOW_BLT 0x0040 #define BMF_UMPDMEM 0x0080 +#if (NTDDI_VERSION >= NTDDI_WIN7) +#define BMF_TEMP_ALPHA 0x0100 +#endif /* (NTDDI_VERSION >= NTDDI_WIN7) *( +#if (NTDDI_VERSION >= NTDDI_WIN8) +#define BMF_ACC_NOTIFY 0x8000 +#define BMF_RMT_ENTER 0x4000 +#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */ + +#if (NTDDI_VERSION >= NTDDI_WIN8) +#define BMF_RESERVED 0x3E00 +#elif (NTDDI_VERSION >= NTDDI_WIN7) +#define BMF_RESERVED 0xFE00 +#else #define BMF_RESERVED 0xFF00 +#endif
typedef struct _SURFOBJ { DHSURF dhsurf; @@ -1237,6 +1357,9 @@
#define FL_ZERO_MEMORY 0x00000001 #define FL_NONPAGED_MEMORY 0x00000002 +#if (NTDDI_VERSION >= NTDDI_WIN7) +#define FL_NON_SESSION 0x00000004 +#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
#ifdef USERMODE_DRIVER
@@ -1244,7 +1367,7 @@ #define EngAllocPrivateUserMem(psl, cj, tag) ((PVOID)GlobalAlloc(GMEM_FIXED, cj)) #define EngAllocUserMem(cj, tag) ((PVOID)GlobalAlloc(GMEM_FIXED, cj))
-#else +#else /* !USERMODE_DRIVER */
_Must_inspect_result_ _When_(fl & FL_ZERO_MEMORY, _Ret_opt_bytecount_(cjMemSize)) @@ -1276,7 +1399,7 @@ _In_ SIZE_T cjMemSize, _In_ ULONG ulTag);
-#endif /* USERMODE_DRIVER */ +#endif /* !USERMODE_DRIVER */
ENGAPI BOOL @@ -1350,6 +1473,7 @@ EngClearEvent( _In_ PEVENT pEvent);
+_Success_(return != 0) ENGAPI FD_GLYPHSET* APIENTRY @@ -1377,8 +1501,8 @@ _In_ SURFOBJ *psoSrc, _In_opt_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, - _In_ RECTL *prclDest, - _In_ POINTL *pptlSrc); + _In_ __in_data_source(USER_MODE) RECTL *prclDest, + _In_ __in_data_source(USER_MODE) POINTL *pptlSrc);
ENGAPI HBITMAP @@ -1567,9 +1691,9 @@ EngDeviceIoControl( _In_ HANDLE hDevice, _In_ DWORD dwIoControlCode, - _In_opt_bytecount_(cjInBufferSize) LPVOID lpInBuffer, + _In_reads_bytes_opt_(cjInBufferSize) LPVOID lpInBuffer, _In_ DWORD cjInBufferSize, - _Out_opt_bytecap_(cjOutBufferSize) LPVOID lpOutBuffer, + _Out_writes_bytes_opt_(cjOutBufferSize) LPVOID lpOutBuffer, _In_ DWORD cjOutBufferSize, _Out_ LPDWORD lpBytesReturned);
@@ -1587,6 +1711,18 @@ _When_(iMode == DM_MONOCHROME, _Out_writes_bytes_(8)) ULONG *pul);
+/* Obsolete in Windows 2000 and later */ +ENGAPI +HRESULT +APIENTRY +EngDxIoctl( + _In_ ULONG ulIoctl, + _Inout_ PVOID pBuffer, + _In_ ULONG ulBufferSize); + +#ifdef USERMODE_DRIVER +#define EngEnumForms EnumForms +#else /* !USERMODE_DRIVER */ ENGAPI BOOL APIENTRY @@ -1597,6 +1733,7 @@ _In_ DWORD cbBuf, _Out_ LPDWORD pcbNeeded, _Out_ LPDWORD pcReturned); +#endif /* !USERMODE_DRIVER */
ENGAPI BOOL @@ -1618,12 +1755,16 @@ _In_ MIX mix, _In_ FLONG flOptions);
+#ifdef USERMODE_DRIVER +#define EngFindImageProcAddress(h, procname) ((PVOID) GetProcAddress(h, procname)) +#else /* !USERMODE_DRIVER */ ENGAPI PVOID APIENTRY EngFindImageProcAddress( _In_ HANDLE hModule, _In_ LPSTR lpProcName); +#endif /* !USERMODE_DRIVER */
ENGAPI PVOID @@ -1735,6 +1876,12 @@ _In_ HANDLE h, _Out_ WCHAR (*pDest)[MAX_PATH+1]);
+#ifdef USERMODE_DRIVER +#define EngGetForm GetForm +#define EngGetLastError GetLastError +#define EngGetPrinter GetPrinter +#define EngGetPrinterData GetPrinterData +#else /* !USERMODE_DRIVER */ ENGAPI BOOL APIENTRY @@ -1746,14 +1893,10 @@ _In_ DWORD cbBuf, _Out_ LPDWORD pcbNeeded);
-#ifdef USERMODE_DRIVER -#define EngGetLastError GetLastError -#else ENGAPI ULONG APIENTRY EngGetLastError(VOID); -#endif
ENGAPI BOOL @@ -1775,6 +1918,7 @@ _Out_writes_bytes_opt_(cjSize) LPBYTE pData, _In_ DWORD cjSize, _Out_ LPDWORD pcjNeeded); +#endif /* !USERMODE_DRIVER */
ENGAPI LPWSTR @@ -1782,6 +1926,9 @@ EngGetPrinterDataFileName( _In_ HDEV hdev);
+#ifdef USERMODE_DRIVER +#define EngGetPrinterDriver GetPrinterDriver +#else /* !USERMODE_DRIVER */ ENGAPI BOOL APIENTRY @@ -1792,6 +1939,7 @@ _Out_writes_bytes_opt_(cjBufSize) BYTE *lpbDrvInfo, _In_ DWORD cjBufSize, _Out_ DWORD *pcjNeeded); +#endif /* !USERMODE_DRIVER */
ENGAPI HANDLE @@ -1867,11 +2015,15 @@ _In_opt_ RECTL *prclBounds, _In_ MIX mix);
+#ifdef USERMODE_DRIVER +#define EngLoadImage(pwszDriver) ((HANDLE)LoadLibraryW(pwszDriver)) +#else /* !USERMODE_DRIVER */ ENGAPI HANDLE APIENTRY EngLoadImage( _In_ LPWSTR pwszDriver); +#endif /* !USERMODE_DRIVER */
ENGAPI HANDLE @@ -1929,6 +2081,7 @@ _In_ ULONG cjSize, _Out_ ULONG_PTR *piFile);
+__drv_preferredFunction("EngMapFontFileFD", "Obsolete") ENGAPI BOOL APIENTRY @@ -1961,6 +2114,7 @@ /* EngModifySurface.flSurface constants */ #define MS_NOTSYSTEMMEMORY 0x00000001 #define MS_SHAREDACCESS 0x00000002 +#define MS_CDDDEVICEBITMAP 0x00000004
ENGAPI BOOL @@ -2024,7 +2178,7 @@ _In_ CLIPOBJ *pco, _In_ BRUSHOBJ *pbo, _In_ POINTL *pptlBrushOrg, - _In_ MIX mix); + _In_ __in_data_source(USER_MODE) MIX mix);
ENGAPI BOOL @@ -2040,18 +2194,14 @@ _In_ POINTFIX *pptfx, _In_ RECTL *prcl, _When_(psoMsk, _In_) POINTL *pptl, - _In_ ULONG iMode); + _In_ __in_data_source(USER_MODE) ULONG iMode);
ENGAPI VOID APIENTRY EngProbeForRead( _In_reads_bytes_(Length) PVOID Address, -#if (NTDDI_VERSION <= NTDDI_WINXP) - _In_ ULONG Length, -#else _In_ SIZE_T Length, -#endif _In_ ULONG Alignment);
ENGAPI @@ -2059,11 +2209,7 @@ APIENTRY EngProbeForReadAndWrite( _Inout_updates_bytes_(Length) PVOID Address, -#if (NTDDI_VERSION <= NTDDI_WINXP) - _In_ ULONG Length, -#else _In_ SIZE_T Length, -#endif _In_ ULONG Alignment);
typedef enum _ENG_DEVICE_ATTRIBUTE { @@ -2082,6 +2228,13 @@ _Out_writes_bytes_(cjOutSize) PVOID pvOut, _In_ ULONG cjOutSize);
+/* Obsolete in Windows 2000 and later */ +DECLSPEC_DEPRECATED_DDK +BOOL APIENTRY +EngQueryEMFInfo( + _In_ HDEV hdev, + _Out_ EMFINFO *pEMFInfo); + ENGAPI LARGE_INTEGER APIENTRY @@ -2125,6 +2278,11 @@ #define QSA_MMX 0x00000100 #define QSA_SSE 0x00002000 #define QSA_3DNOW 0x00004000 +#if (NTDDI_VERSION >= NTDDI_VISTA) +#define QSA_SSE1 QSA_SSE +#define QSA_SSE2 0x00010000 +#define QSA_SSE3 0x00080000 +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
_Check_return_ _Success_(return) @@ -2146,6 +2304,8 @@ APIENTRY EngReleaseSemaphore( _In_ HSEMAPHORE hsem); + +#if defined(_M_AMD64) && (NTDDI_VERSION >= NTDDI_VISTA)
_Check_return_ _Success_(return) @@ -2157,7 +2317,11 @@ APIENTRY EngRestoreFloatingPointState( _In_reads_(_Inexpressible_(statesize)) - PVOID pBuffer); + PVOID pBuffer) +{ + UNREFERENCED_PARAMETER(pBuffer); + return TRUE; +}
_Check_return_ _Success_(((pBuffer != NULL && cjBufferSize != 0) && return == 1) || @@ -2171,7 +2335,41 @@ EngSaveFloatingPointState( _At_(*pBuffer, _Kernel_requires_resource_not_held_(EngFloatState)) _Out_writes_bytes_opt_(cjBufferSize) PVOID pBuffer, + _Inout_ ULONG cjBufferSize) +{ + return ((((pBuffer) == NULL) || ((cjBufferSize) == 0)) ? 8 : TRUE); +} + +#else /* !(defined(_M_AMD64) && (NTDDI_VERSION >= NTDDI_VISTA)) */ + +_Check_return_ +_Success_(return) +_Kernel_float_restored_ +_At_(*pBuffer, _Kernel_requires_resource_held_(EngFloatState) + _Kernel_releases_resource_(EngFloatState)) +ENGAPI +BOOL +APIENTRY +EngRestoreFloatingPointState( + _In_reads_(_Inexpressible_(statesize)) + PVOID pBuffer); + +_Check_return_ +_Success_(((pBuffer != NULL && cjBufferSize != 0) && return == 1) || + ((pBuffer == NULL || cjBufferSize == 0) && return > 0)) +_When_(pBuffer != NULL && cjBufferSize != 0 && return == 1, _Kernel_float_saved_ + _At_(*pBuffer, _Post_valid_ _Kernel_acquires_resource_(EngFloatState))) +_On_failure_(_Post_satisfies_(return == 0)) +ENGAPI +ULONG +APIENTRY +EngSaveFloatingPointState( + _At_(*pBuffer, _Kernel_requires_resource_not_held_(EngFloatState)) + _Out_writes_bytes_opt_(cjBufferSize) PVOID pBuffer, _Inout_ ULONG cjBufferSize); + + +#endif /* defined(_M_AMD64) && (NTDDI_VERSION >= NTDDI_VISTA) */
ENGAPI HANDLE @@ -2188,13 +2386,13 @@
#ifdef USERMODE_DRIVER #define EngSetLastError SetLastError -#else +#else /* !USERMODE_DRIVER */ ENGAPI VOID APIENTRY EngSetLastError( _In_ ULONG iError); -#endif +#endif /* !USERMODE_DRIVER */
ENGAPI ULONG @@ -2211,6 +2409,7 @@ _In_ RECTL *prcl, _In_ FLONG fl);
+__drv_preferredFunction("(see documentation)", "Obsolete, always returns false. ") ENGAPI BOOL APIENTRY @@ -2221,6 +2420,9 @@ _Reserved_ XLATEOBJ *pxlo, _In_ FLONG fl);
+#ifdef USERMODE_DRIVER +#define EngSetPrinterData SetPrinterData +#else /* !USERMODE_DRIVER */ ENGAPI DWORD APIENTRY @@ -2230,6 +2432,7 @@ _In_ DWORD dwType, _In_reads_bytes_(cjPrinterData) LPBYTE lpbPrinterData, _In_ DWORD cjPrinterData); +#endif /* !USERMODE_DRIVER */
typedef int (CDECL *SORTCOMP)(const void *pv1, const void *pv2);
@@ -2288,8 +2491,8 @@ _In_ LINEATTRS *plineattrs, _In_ BRUSHOBJ *pboFill, _In_ POINTL *pptlBrushOrg, - _In_ MIX mixFill, - _In_ FLONG flOptions); + _In_ __in_data_source(USER_MODE) MIX mixFill, + _In_ __in_data_source(USER_MODE) FLONG flOptions);
ENGAPI BOOL @@ -2342,11 +2545,15 @@ _In_reads_bytes_(cjUnicodeString) PWSTR pwszUnicodeString, _In_ ULONG cjUnicodeString);
+#ifdef USERMODE_DRIVER +#define EngUnloadImage(h) FreeLibrary((HMODULE) (h)) +#else /* !USERMODE_DRIVER */ ENGAPI VOID APIENTRY EngUnloadImage( _In_ HANDLE hModule); +#endif /* !USERMODE_DRIVER */
ENGAPI BOOL @@ -2378,6 +2585,7 @@ EngUnmapFile( _In_ ULONG_PTR iFile);
+__drv_preferredFunction("EngUnmapFontFileFD", "Obsolete") ENGAPI VOID APIENTRY @@ -2413,6 +2621,9 @@ _Out_z_bytecap_(cjMultiByteString) LPSTR pszMultiByteString, _In_ INT cjMultiByteString);
+#ifdef USERMODE_DRIVER +#define EngWritePrinter WritePrinter +#else /* !USERMODE_DRIVER */ ENGAPI BOOL APIENTRY @@ -2421,6 +2632,7 @@ _In_reads_bytes_(cjBuf) LPVOID pvBuf, _In_ DWORD cjBuf, _Out_ LPDWORD pcWritten); +#endif /* !USERMODE_DRIVER */
#if defined(_X86_) && !defined(USERMODE_DRIVER) ENGAPI @@ -2684,6 +2896,7 @@ _Out_bytecap_(cjSize) FONTINFO *pfi);
#if (NTDDI_VERSION <= NTDDI_WINXP) + /* Obsolete in Windows 2000 and later */ GAMMA_TABLES* APIENTRY FONTOBJ_pGetGammaTables( @@ -2892,6 +3105,14 @@ _In_reads_bytes_(cPoints * sizeof(POINTL)) PVOID pvIn, _Out_writes_bytes_(cPoints * sizeof(POINTL)) PVOID pvOut);
+/* Obsolete in Windows 2000 and later */ +DECLSPEC_DEPRECATED_DDK +ENGAPI +HANDLE +APIENTRY +XFORMOBJ_cmGetTransform( + XFORMOBJ *pxo); + #if !defined(USERMODE_DRIVER) ENGAPI ULONG @@ -2945,6 +3166,223 @@ XLATEOBJ_piVector( _In_ XLATEOBJ *pxlo);
+#if (NTDDI_VERSION >= NTDDI_WINXPSP2) + +ENGAPI +VOID +APIENTRY +EngBugCheckEx( + _In_ ULONG BugCheckCode, + _In_ ULONG_PTR P1, + _In_ ULONG_PTR P2, + _In_ ULONG_PTR P3, + _In_ ULONG_PTR P4); + +#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */ + +#if (NTDDI_VERSION >= NTDDI_VISTA) + +ENGAPI +HANDLE +APIENTRY +EngCreateRectRgn( + _In_ INT left, + _In_ INT top, + _In_ INT right, + _In_ INT bottom); + +ENGAPI +VOID +APIENTRY +EngDeleteRgn( + _In_ HANDLE hrgn); + +ENGAPI +INT +APIENTRY +EngCombineRgn( + _In_ HANDLE hrgnTrg, + _In_ HANDLE hrgnSrc1, + _In_ HANDLE hrgnSrc2, + _In_ INT iMode); + +ENGAPI +INT +APIENTRY +EngCopyRgn( + _In_ HANDLE hrgnDst, + _In_ HANDLE hrgnSrc); + +ENGAPI +INT +APIENTRY +EngIntersectRgn( + _In_ HANDLE hrgnResult, + _In_ HANDLE hRgnA, + _In_ HANDLE hRgnB); + +ENGAPI +INT +APIENTRY +EngSubtractRgn( + _In_ HANDLE hrgnResult, + _In_ HANDLE hRgnA, + _In_ HANDLE hRgnB); + +ENGAPI +INT +APIENTRY +EngUnionRgn( + _In_ HANDLE hrgnResult, + _In_ HANDLE hRgnA, + _In_ HANDLE hRgnB); + +ENGAPI +INT +APIENTRY +EngXorRgn( + _In_ HANDLE hrgnResult, + _In_ HANDLE hRgnA, + _In_ HANDLE hRgnB); + +ENGAPI +BOOL +APIENTRY +EngRectInRgn( + _In_ HANDLE hrgn, + _In_ LPRECT prcl); + +ENGAPI +BOOL +APIENTRY +EngEqualRgn( + _In_ HANDLE hrgn1, + _In_ HANDLE hrgn2); + +ENGAPI +DWORD +APIENTRY +EngGetRgnData( + _In_ HANDLE hrgn, + _In_ DWORD nCount, + _Out_cap_(nCount) LPRGNDATA lpRgnData); + +ENGAPI +BOOL +APIENTRY +EngSetRectRgn( + _In_ HANDLE hrgn, + _In_ INT left, + _In_ INT top, + _In_ INT right, + _In_ INT bottom); + +ENGAPI +INT +APIENTRY +EngGetRgnBox( + _In_ HANDLE hrgn, + _Out_ LPRECT prcl); + +ENGAPI +INT +APIENTRY +EngOffsetRgn( + _In_ HANDLE hrgn, + _In_ INT x, + _In_ INT y); + +ENGAPI +VOID +APIENTRY +EngRenderHint( + _In_ DHPDEV dhpdev, + _In_ ULONG NotifyCode, + _In_ SIZE_T Length, + _In_reads_bytes_opt_(Length) PVOID Data); + +ENGAPI +VOID +APIENTRY +EngAcquireSemaphoreShared( + _In_ HSEMAPHORE hsem); + +ENGAPI +BOOL +APIENTRY +EngAcquireSemaphoreNoWait( + _In_ HSEMAPHORE hsem); + +ENGAPI +BOOL +APIENTRY +EngAcquireSemaphoreSharedNoWait( + _In_ HSEMAPHORE hsem); + +ENGAPI +BOOL +APIENTRY +EngIsSemaphoreSharedByCurrentThread( + _In_ HSEMAPHORE hsem); + +DECLARE_HANDLE(HFASTMUTEX); + +ENGAPI +HFASTMUTEX +APIENTRY +EngCreateFastMutex( + VOID); + +ENGAPI +VOID +APIENTRY +EngDeleteFastMutex( + _In_ HFASTMUTEX hfm); + +ENGAPI +VOID +APIENTRY +EngAcquireFastMutex( + _In_ HFASTMUTEX hfm); + +ENGAPI +VOID +APIENTRY +EngReleaseFastMutex( + _In_ HFASTMUTEX hfm); + +ENGAPI +BOOL +APIENTRY +EngUpdateDeviceSurface( + _In_ SURFOBJ *pso, + _Inout_ CLIPOBJ **ppco); + +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ + +#if (NTDDI_VERSION >= NTDDI_WIN7) + +ENGAPI +HBITMAP +APIENTRY +EngCreateRedirectionDeviceBitmap( + __in_data_source(USER_MODE) DHSURF dhsurf, + __in_data_source(USER_MODE) SIZEL sizl, + _In_ ULONG iFormatCompat); + +VOID +APIENTRY +EngCTGetGammaTable( + _In_ ULONG ulGamma, + _Out_ CONST BYTE** pGammaTable, + _Out_ CONST BYTE** pInverseGammaTable); + +ULONG +APIENTRY +EngCTGetCurrentGamma( + _In_ HDEV hdev); + +#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
/* Graphics Driver Functions */
@@ -3382,7 +3820,6 @@ #define QC_OUTLINES 0x00000001 #define QC_1BIT 0x00000002 #define QC_4BIT 0x00000004 - #define QC_FONTDRIVERCAPS (QC_OUTLINES | QC_1BIT | QC_4BIT)
typedef LONG @@ -3578,6 +4015,9 @@ #define SPS_ANIMATESTART 0x00000004L #define SPS_ANIMATEUPDATE 0x00000008L #define SPS_ALPHA 0x00000010L +#define SPS_RESERVED 0x00000020L /* Force s/w cursor rendering */ +#define SPS_RESERVED1 0x00000040L /* Force show/hide system cursor */ +#define SPS_FLAGSMASK 0x000000FFL #define SPS_LENGTHMASK 0x00000F00L #define SPS_FREQMASK 0x000FF000L
@@ -3776,6 +4216,192 @@ typedef FN_DrvQuerySpoolType *PFN_DrvQuerySpoolType; extern FN_DrvQuerySpoolType DrvQuerySpoolType;
+typedef LONG +(APIENTRY FN_DrvQueryTrueTypeSection)( + ULONG, + ULONG, + ULONG, + HANDLE *, + PTRDIFF *); +typedef FN_DrvQueryTrueTypeSection *PFN_DrvQueryTrueTypeSection; +extern FN_DrvQueryTrueTypeSection DrvQueryTrueTypeSection; + +DECLSPEC_DEPRECATED_DDK +typedef VOID +(APIENTRY FN_DrvMovePanning)( + _In_ LONG x, + _In_ LONG y, + _In_ FLONG fl); +typedef FN_DrvMovePanning *PFN_DrvMovePanning; +extern FN_DrvMovePanning DrvMovePanning; + +#if (NTDDI_VERSION >= NTDDI_VISTA) + +typedef LONG +(APIENTRY FN_DrvRenderHint)( + _In_ DHPDEV dhpdev, + _In_ ULONG NotifyCode, + _In_ SIZE_T Length, + _In_reads_bytes_opt_(Length) PVOID Data); +typedef FN_DrvRenderHint *PFN_DrvRenderHint; +extern FN_DrvRenderHint DrvRenderHint; + +typedef struct _DRH_APIBITMAPDATA +{ + SURFOBJ *pso; + BOOL b; +} DRH_APIBITMAPDATA, *PDRH_APIBITMAPDATA; + +#define DRH_APIBITMAP 0x00000001 + +typedef HANDLE +(APIENTRY FN_EngCreateRectRgn)( + _In_ INT left, + _In_ INT top, + _In_ INT right, + _In_ INT bottom); +typedef FN_EngCreateRectRgn *PFN_EngCreateRectRgn; + +typedef VOID +(APIENTRY FN_EngDeleteRgn)( + HANDLE hrgn); +typedef FN_EngDeleteRgn *PFN_EngDeleteRgn; + +typedef INT +(APIENTRY FN_EngCombineRgn)( + _In_ HANDLE hrgnTrg, + _In_ HANDLE hrgnSrc1, + _In_ HANDLE hrgnSrc2, + _In_ INT iMode); +typedef FN_EngCombineRgn *PFN_EngCombineRgn; + +typedef INT +(APIENTRY FN_EngCopyRgn)( + _In_ HANDLE hrgnDst, + _In_ HANDLE hrgnSrc); +typedef FN_EngCopyRgn *PFN_EngCopyRgn; + +typedef INT +(APIENTRY FN_EngIntersectRgn)( + _In_ HANDLE hrgnResult, + _In_ HANDLE hRgnA, + _In_ HANDLE hRgnB); +typedef FN_EngIntersectRgn *PFN_EngIntersectRgn; + +typedef INT +(APIENTRY FN_EngSubtractRgn)( + _In_ HANDLE hrgnResult, + _In_ HANDLE hRgnA, + _In_ HANDLE hRgnB); +typedef FN_EngSubtractRgn *PFN_EngSubtractRgn; + +typedef INT +(APIENTRY FN_EngUnionRgn)( + _In_ HANDLE hrgnResult, + _In_ HANDLE hRgnA, + _In_ HANDLE hRgnB); +typedef FN_EngUnionRgn *PFN_EngUnionRgn; + +typedef INT +(APIENTRY FN_EngXorRgn)( + _In_ HANDLE hrgnResult, + _In_ HANDLE hRgnA, + _In_ HANDLE hRgnB); +typedef FN_EngXorRgn *PFN_EngXorRgn; + +#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ + +#if (NTDDI_VERSION >= NTDDI_WIN7) + +/* DrvCreateDeviceBitmapEx() flags */ +#define CDBEX_REDIRECTION 0x00000001 +#define CDBEX_DXINTEROP 0x00000002 + +typedef HBITMAP +(APIENTRY FN_DrvCreateDeviceBitmapEx)( + _In_ DHPDEV dhpdev, + _In_ SIZEL sizl, + _In_ ULONG iFormat, + _In_ DWORD Flags, + _In_ DHSURF dhsurfGroup, + _In_ DWORD DxFormat, +#if (NTDDI_VERSION >= NTDDI_WIN8) + _In_ DWORD SubresourceIndex, +#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */ + _Out_ HANDLE* phSharedSurface); +typedef FN_DrvCreateDeviceBitmapEx *PFN_DrvCreateDeviceBitmapEx; +extern DrvCreateDeviceBitmapEx DrvCreateDeviceBitmapEx + +typedef VOID +(APIENTRY FN_DrvDeleteDeviceBitmapEx)( + _Inout_ DHSURF); +typedef FN_DrvDeleteDeviceBitmapEx *PFN_DrvDeleteDeviceBitmapEx; +extern FN_DrvDeleteDeviceBitmapEx DrvDeleteDeviceBitmapEx; + +typedef BOOL +(APIENTRY FN_DrvAssociateSharedSurface)( + _In_ SURFOBJ* psoSurf, + _In_ HANDLE hPhysicalSurface, + _In_ HANDLE hLogicalSurface, + _In_ SIZEL sizl); +typedef FN_DrvAssociateSharedSurface *PFN_DrvAssociateSharedSurface; +extern + +typedef LONG +(APIENTRY FN_DrvSynchronizeRedirectionBitmaps)( + _In_ DHPDEV dhpdev, + _Out_ UINT64* puiFenceID); +typedef FN_DrvSynchronizeRedirectionBitmaps *PFN_DrvSynchronizeRedirectionBitmaps; +extern FN_DrvSynchronizeRedirectionBitmaps DrvSynchronizeRedirectionBitmaps; + +#define WINDDI_MAX_BROADCAST_CONTEXT 64 +typedef struct tagCDDDXGK_REDIRBITMAPPRESENTINFO +{ + UINT NumDirtyRects; + PRECT DirtyRect; + UINT NumContexts; + HANDLE hContext[WINDDI_MAX_BROADCAST_CONTEXT+1]; +} CDDDXGK_REDIRBITMAPPRESENTINFO; + +typedef BOOL +(APIENTRY FN_DrvAccumulateD3DDirtyRect)( + _In_ SURFOBJ* psoSurf, + _In_ CDDDXGK_REDIRBITMAPPRESENTINFO* pDirty); +typedef FN_DrvAccumulateD3DDirtyRect *PFN_DrvAccumulateD3DDirtyRect; +extern FN_DrvAccumulateD3DDirtyRect DrvAccumulateD3DDirtyRect; + +typedef BOOL +(APIENTRY FN_DrvStartDxInterop)( + _In_ SURFOBJ* psoSurf, + _In_ BOOL bDiscard, + _In_ PVOID KernelModeDeviceHandle); +typedef FN_DrvStartDxInterop *PFN_DrvStartDxInterop; +extern FN_DrvStartDxInterop DrvStartDxInterop; + +typedef BOOL +(APIENTRY FN_DrvEndDxInterop)( + _In_ SURFOBJ* psoSurf, + _In_ BOOL bDiscard, + _Out_ BOOL* bDeviceLost, + _In_ PVOID KernelModeDeviceHandle); +typedef FN_DrvEndDxInterop *PFN_DrvEndDxInterop; +extern FN_DrvEndDxInterop DrvEndDxInterop; + +typedef VOID +(APIENTRY FN_DrvLockDisplayArea)( + _In_ DHPDEV dhpdev, + _In_opt_ RECTL *prcl); +typedef FN_DrvLockDisplayArea *PFN_DrvLockDisplayArea; +extern FN_DrvLockDisplayArea DrvLockDisplayArea; + +typedef VOID +(APIENTRY FN_DrvUnlockDisplayArea)( + _In_ DHPDEV dhpdev, + _In_opt_ RECTL *prcl); +typedef FN_DrvUnlockDisplayArea *PFN_DrvUnlockDisplayArea; +extern FN_DrvUnlockDisplayArea DrvUnlockDisplayArea; + +#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
#ifdef __cplusplus }
Modified: trunk/reactos/win32ss/gdi/eng/ldevobj.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/eng/ldevobj.c?r... ============================================================================== --- trunk/reactos/win32ss/gdi/eng/ldevobj.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/eng/ldevobj.c [iso-8859-1] Thu Oct 2 20:11:24 2014 @@ -292,6 +292,7 @@ pExportDir = pldev->pGdiDriverInfo->ExportSectionPointer; if (!pExportDir) { + ERR("LDEVOBJ_pvFindImageProcAddress: no export section found\n"); return NULL; }
Modified: trunk/reactos/win32ss/reactx/ntddraw/eng.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/reactx/ntddraw/eng.... ============================================================================== --- trunk/reactos/win32ss/reactx/ntddraw/eng.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/reactx/ntddraw/eng.c [iso-8859-1] Thu Oct 2 20:11:24 2014 @@ -122,7 +122,7 @@ * This function is no longer used in Windows NT 2000/XP/2003 * *--*/ -DWORD +HRESULT APIENTRY EngDxIoctl(ULONG ulIoctl, PVOID pBuffer,