1 2 extern IMAGE_DOS_HEADER __ImageBase; 3 4 static const unsigned GDI_ENGINE_VERSION = DDI_DRIVER_VERSION_NT5_01; 5 6 typedef enum 7 { 8 LDEV_DEVICE_DISPLAY = 1, 9 LDEV_DEVICE_PRINTER = 2, 10 LDEV_DEVICE_META = 3, 11 LDEV_DEVICE_MIRROR = 4, 12 LDEV_IMAGE = 5, 13 LDEV_FONT = 6, 14 } LDEVTYPE; 15 16 typedef struct _LDEVOBJ 17 { 18 LIST_ENTRY leLink; 19 SYSTEM_GDI_DRIVER_INFORMATION *pGdiDriverInfo; 20 LDEVTYPE ldevtype; 21 ULONG cRefs; 22 ULONG ulDriverVersion; 23 24 union 25 { 26 PVOID apfn[INDEX_LAST]; 27 DRIVER_FUNCTIONS pfn; 28 }; 29 30 } LDEVOBJ, *PLDEVOBJ; 31 32 NTSTATUS 33 NTAPI 34 InitLDEVImpl(VOID); 35 36 PDEVMODEINFO 37 NTAPI 38 LDEVOBJ_pdmiGetModes( 39 _In_ PLDEVOBJ pldev, 40 _In_ HANDLE hDriver); 41 42 PLDEVOBJ 43 APIENTRY 44 EngLoadImageEx( 45 _In_z_ LPWSTR pwszDriverName, 46 _In_ ULONG ldevtype); 47 48 PLDEVOBJ 49 NTAPI 50 EngGetLDEV( 51 PDEVMODEW pdm); 52 53 NTSTATUS 54 APIENTRY 55 DriverEntry ( 56 _In_ PDRIVER_OBJECT DriverObject, 57 _In_ PUNICODE_STRING RegistryPath); 58 59