[KS]
[reactos.git] / reactos / subsystems / win32 / win32k / include / ldevobj.h
1
2 #ifdef __GNUC__
3 /* Hack, for bug in ld. Will be removed soon. */
4 #define __ImageBase _image_base__
5 #endif
6 extern IMAGE_DOS_HEADER __ImageBase;
7
8
9 #define TAG_LDEV 'Gldv'
10
11 #define GDI_ENGINE_VERSION DDI_DRIVER_VERSION_NT5_01
12
13 typedef enum
14 {
15 LDEV_DEVICE_DISPLAY = 1,
16 LDEV_DEVICE_PRINTER = 2,
17 LDEV_DEVICE_META = 3,
18 LDEV_DEVICE_MIRROR = 4,
19 LDEV_IMAGE = 5,
20 LDEV_FONT = 6,
21 } LDEVTYPE;
22
23 typedef struct _LDEVOBJ
24 {
25 struct _LDEVOBJ *pldevNext;
26 struct _LDEVOBJ *pldevPrev;
27 SYSTEM_GDI_DRIVER_INFORMATION *pGdiDriverInfo;
28 LDEVTYPE ldevtype;
29 ULONG cRefs;
30 ULONG ulDriverVersion;
31
32 union
33 {
34 PVOID apfn[INDEX_LAST];
35 DRIVER_FUNCTIONS pfn;
36 };
37
38 } LDEVOBJ, *PLDEVOBJ;
39
40 extern PLDEVOBJ gpldevHead;
41 extern HSEMAPHORE ghsemDriverMgmt;
42
43 PLDEVOBJ
44 NTAPI
45 LDEVOBJ_pldevLoadImage(
46 PUNICODE_STRING pusPathName,
47 LDEVTYPE ldevtype);
48
49 BOOL
50 NTAPI
51 LDEVOBJ_bLoadDriver(
52 IN PLDEVOBJ pldev);
53
54 PVOID
55 NTAPI
56 LDEVOBJ_pvFindImageProcAddress(
57 IN PLDEVOBJ pldev,
58 IN LPSTR lpProcName);
59
60 PDEVMODEINFO
61 NTAPI
62 LDEVOBJ_pdmiGetModes(
63 PLDEVOBJ pldev,
64 HANDLE hDriver);
65
66 INIT_FUNCTION
67 NTSTATUS
68 NTAPI
69 InitLDEVImpl();
70
71 PLDEVOBJ
72 APIENTRY
73 EngLoadImageEx(
74 LPWSTR pwszDriverName,
75 ULONG ldevtype);
76
77 PLDEVOBJ
78 NTAPI
79 EngGetLDEV(
80 PDEVMODEW pdm);
81
82 NTSTATUS
83 APIENTRY
84 DriverEntry (
85 IN PDRIVER_OBJECT DriverObject,
86 IN PUNICODE_STRING RegistryPath);
87