1 2 3 /************************************************************************/ 4 /* These functions are imported from win32k.sys by dxg.sys */ 5 /************************************************************************/ 6 #define DXENG_INDEX_Resverd0 0x00 7 #define DXENG_INDEX_DxEngNUIsTermSrv 0x01 8 #define DXENG_INDEX_DxEngScreenAccessCheck 0x02 9 #define DXENG_INDEX_DxEngRedrawDesktop 0x03 10 #define DXENG_INDEX_DxEngDispUniq 0x04 11 #define DXENG_INDEX_DxEngIncDispUniq 0x05 12 #define DXENG_INDEX_DxEngVisRgnUniq 0x06 13 #define DXENG_INDEX_DxEngLockShareSem 0x07 14 #define DXENG_INDEX_DxEngUnlockShareSem 0x08 15 #define DXENG_INDEX_DxEngEnumerateHdev 0x09 16 #define DXENG_INDEX_DxEngLockHdev 0x0A 17 #define DXENG_INDEX_DxEngUnlockHdev 0x0B 18 #define DXENG_INDEX_DxEngIsHdevLockedByCurrentThread 0x0C 19 #define DXENG_INDEX_DxEngReferenceHdev 0x0D 20 #define DXENG_INDEX_DxEngUnreferenceHdev 0x0E 21 #define DXENG_INDEX_DxEngGetDeviceGammaRamp 0x0F 22 #define DXENG_INDEX_DxEngSetDeviceGammaRamp 0x10 23 #define DXENG_INDEX_DxEngSpTearDownSprites 0x11 24 #define DXENG_INDEX_DxEngSpUnTearDownSprites 0x12 25 #define DXENG_INDEX_DxEngSpSpritesVisible 0x13 26 #define DXENG_INDEX_DxEngGetHdevData 0x14 27 #define DXENG_INDEX_DxEngSetHdevData 0x15 28 #define DXENG_INDEX_DxEngCreateMemoryDC 0x16 29 #define DXENG_INDEX_DxEngGetDesktopDC 0x17 30 #define DXENG_INDEX_DxEngDeleteDC 0x18 31 #define DXENG_INDEX_DxEngCleanDC 0x19 32 #define DXENG_INDEX_DxEngSetDCOwner 0x1A 33 #define DXENG_INDEX_DxEngLockDC 0x1B 34 #define DXENG_INDEX_DxEngUnlockDC 0x1C 35 #define DXENG_INDEX_DxEngSetDCState 0x1D 36 #define DXENG_INDEX_DxEngGetDCState 0x1E 37 #define DXENG_INDEX_DxEngSelectBitmap 0x1F 38 #define DXENG_INDEX_DxEngSetBitmapOwner 0x20 39 #define DXENG_INDEX_DxEngDeleteSurface 0x21 40 #define DXENG_INDEX_DxEngGetSurfaceData 0x22 41 #define DXENG_INDEX_DxEngAltLockSurface 0x23 42 #define DXENG_INDEX_DxEngUploadPaletteEntryToSurface 0x24 43 #define DXENG_INDEX_DxEngMarkSurfaceAsDirectDraw 0x25 44 #define DXENG_INDEX_DxEngSelectPaletteToSurface 0x26 45 #define DXENG_INDEX_DxEngSyncPaletteTableWithDevice 0x27 46 #define DXENG_INDEX_DxEngSetPaletteState 0x28 47 #define DXENG_INDEX_DxEngGetRedirectionBitmap 0x29 48 #define DXENG_INDEX_DxEngLoadImage 0x2A 49 50 typedef enum _DXEGSHDEVDATA 51 { 52 DxEGShDevData_Surface, 53 DxEGShDevData_hSpooler, 54 DxEGShDevData_DitherFmt, 55 DxEGShDevData_FxCaps, 56 DxEGShDevData_FxCaps2, 57 DxEGShDevData_DrvFuncs, 58 DxEGShDevData_dhpdev, 59 DxEGShDevData_eddg, 60 DxEGShDevData_dd_locks, 61 DxEGShDevData_dd_flags, 62 DxEGShDevData_disable, 63 DxEGShDevData_metadev, 64 DxEGShDevData_display, 65 DxEGShDevData_Parent, 66 DxEGShDevData_OpenRefs, 67 DxEGShDevData_palette, 68 DxEGShDevData_ldev, 69 DxEGShDevData_GDev, 70 DxEGShDevData_clonedev, 71 } DXEGSHDEVDATA,*PDXEGSHDEVDATA; 72 73 /************************************************************************/ 74 /* win32k.sys internal protypes for driver functions it exports */ 75 /************************************************************************/ 76 BOOLEAN NTAPI DxEngNUIsTermSrv(VOID); 77 PDC NTAPI DxEngLockDC(HDC hDC); 78 BOOLEAN NTAPI DxEngUnlockDC(PDC pDC); 79 DWORD_PTR NTAPI DxEngGetHdevData(HDEV, DXEGSHDEVDATA); 80 BOOLEAN NTAPI DxEngSetHdevData(HDEV, DXEGSHDEVDATA, DWORD_PTR); 81 BOOLEAN NTAPI DxEngLockHdev(HDEV hdev); 82 BOOLEAN NTAPI DxEngUnlockHdev(HDEV hdev); 83 DWORD_PTR NTAPI DxEngGetDCState(HDC hDC, DWORD type); 84 BOOLEAN NTAPI DxEngReferenceHdev(HDEV hdev); 85 BOOLEAN NTAPI DxEngLockShareSem(VOID); 86 BOOLEAN NTAPI DxEngUnlockShareSem(VOID); 87 DWORD NTAPI DxEngScreenAccessCheck(VOID); 88 BOOL NTAPI DxEngSetDCOwner(HGDIOBJ hObject, DWORD OwnerMask); 89 90 /* Prototypes for the following functions are not yet finished */ 91 BOOLEAN NTAPI DxEngRedrawDesktop(VOID); 92 ULONG NTAPI DxEngDispUniq(VOID); 93 ULONG NTAPI DxEngVisRgnUniq(VOID); 94 HDEV* NTAPI DxEngEnumerateHdev(HDEV *hdev); 95 BOOL NTAPI DxEngGetDeviceGammaRamp(HDEV hPDev, PGAMMARAMP Ramp); 96 BOOLEAN NTAPI DxEngSetDeviceGammaRamp(HDEV hPDev, PGAMMARAMP Ramp, BOOL Unuse); 97 BOOLEAN NTAPI DxEngCleanDC(HDC hdc); 98 BOOLEAN NTAPI DxEngIncDispUniq(VOID); 99 100 HDC NTAPI DxEngCreateMemoryDC(HDEV hDev); 101 102 BOOLEAN NTAPI DxEngIsHdevLockedByCurrentThread(HDEV hDev); 103 BOOLEAN NTAPI DxEngUnreferenceHdev(HDEV hDev); 104 DWORD NTAPI DxEngSpTearDownSprites(DWORD x1, DWORD x2, DWORD x3); 105 DWORD NTAPI DxEngSpUnTearDownSprites(DWORD x1, DWORD x2, DWORD x3); 106 DWORD NTAPI DxEngSpSpritesVisible(DWORD x1); 107 HDC NTAPI DxEngGetDesktopDC(ULONG DcType, BOOL EmptyDC, BOOL ValidatehWnd); 108 BOOLEAN NTAPI DxEngDeleteDC(HDC hdc, BOOL Force); 109 BOOLEAN NTAPI DxEngSetDCState(HDC hDC, DWORD SetType, DWORD Set); 110 HBITMAP NTAPI DxEngSelectBitmap(HDC hdc, HBITMAP hbmp); 111 BOOLEAN NTAPI DxEngSetBitmapOwner(HBITMAP hbmp, ULONG ulOwner); 112 BOOLEAN NTAPI DxEngDeleteSurface(HSURF hsurf); 113 DWORD NTAPI DxEngGetSurfaceData(DWORD x1, DWORD x2); 114 SURFOBJ * NTAPI DxEngAltLockSurface(HSURF hsurf); 115 DWORD NTAPI DxEngUploadPaletteEntryToSurface(DWORD x1, DWORD x2,DWORD x3, DWORD x4); 116 DWORD NTAPI DxEngMarkSurfaceAsDirectDraw(DWORD x1, DWORD x2); 117 DWORD NTAPI DxEngSelectPaletteToSurface(DWORD x1, DWORD x2); 118 DWORD NTAPI DxEngSyncPaletteTableWithDevice(DWORD x1, DWORD x2); 119 DWORD NTAPI DxEngSetPaletteState(DWORD x1, DWORD x2, DWORD x3); 120 DWORD NTAPI DxEngGetRedirectionBitmap(DWORD x1); 121 DWORD NTAPI DxEngLoadImage(DWORD x1,DWORD x2); 122 123 124