-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathwin32k.h
127 lines (87 loc) · 1.82 KB
/
win32k.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#ifndef _WIN32K_H_
#define _WIN32K_H_
VOID
W32PrepareCall(
/*++
Routine Description
This function prepares thread for calling WIN32
Arguments
None
Return Value
None
--*/
);
VOID
W32ReleaseCall(
/*++
Routine Description
This function unprepares thread from calling WIN32
Arguments
None
Return Value
None
--*/
);
NTSTATUS
W32FindAndSwapIAT(
/*++
Routine Description
This function should be called once at driver initialization.
It swaps current driver IAT functions with WIN32K exported functions.
Also, it attaches to win32, so caller have to call W32ReleaseCall after
Arguments
None
Return Value
None
--*/
);
struct _SURFOBJ;
extern _SURFOBJ *pPrimarySurf;
extern PVOID pDrvCopyBits;
extern KEVENT SynchEvent;
#if 0
PVOID* pTblDrvCopyBits;
#endif
typedef struct _DRVFN /* drvfn */
{
ULONG iFunc;
PVOID pfn;
} DRVFN, *PDRVFN;
#define INDEX_DrvCopyBits 19L
#define SHARED_SIGNATURE 0xDEADBEEF
typedef struct tagDRVENABLEDATA
{
ULONG iDriverVersion;
ULONG c;
PDRVFN pdrvfn;
} DRVENABLEDATA, *PDRVENABLEDATA;
typedef struct SHARED_DISP_DATA
{
ULONG Signature;
DRVENABLEDATA gChildDrv;
_SURFOBJ *pPrimarySurf;
PVOID pDrvCopyBits;
PVOID ppDrvCopyBits;
PVOID Trampoline;
} *PSHARED_DISP_DATA;
extern PVOID W32BaseAddress;
typedef struct _SURFOBJ
{
PVOID dhsurf;
PVOID hsurf;
PVOID dhpdev;
PVOID hdev;
LARGE_INTEGER sizlBitmap;
ULONG cjBits;
PVOID pvBits;
PVOID pvScan0;
LONG lDelta;
ULONG iUniq;
ULONG iBitmapFormat;
USHORT iType;
USHORT fjBitmap;
} SURFOBJ;
#define STYPE_DEVICE 1L
#define STYPE_DEVBITMAP 3L
PSHARED_DISP_DATA GetSharedData();
#endif