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