mirror of
https://github.com/reactos/reactos.git
synced 2024-09-06 19:02:32 +00:00
![Timo Kreuzer](/assets/img/avatar_default.png)
* Add an NDK header to define INIT_FUNCTION/INIT_SECTION globally * Use _declspec(allocate(x)) and _declspec(code_seg(x)) on MSVC versions that support it * Use INIT_FUNCTION on functions only and INIT_SECTION on data only (required by MSVC) * Place INIT_FUNCTION before the return type (required by MSVC) * Make sure declarations and implementations share the same modifiers (required by MSVC) * Add a global linker option to suppress warnings about defined but unused INIT section * Merge INIT section into .text in freeldr
61 lines
977 B
C
61 lines
977 B
C
|
|
extern IMAGE_DOS_HEADER __ImageBase;
|
|
|
|
static const unsigned GDI_ENGINE_VERSION = DDI_DRIVER_VERSION_NT5_01;
|
|
|
|
typedef enum
|
|
{
|
|
LDEV_DEVICE_DISPLAY = 1,
|
|
LDEV_DEVICE_PRINTER = 2,
|
|
LDEV_DEVICE_META = 3,
|
|
LDEV_DEVICE_MIRROR = 4,
|
|
LDEV_IMAGE = 5,
|
|
LDEV_FONT = 6,
|
|
} LDEVTYPE;
|
|
|
|
typedef struct _LDEVOBJ
|
|
{
|
|
LIST_ENTRY leLink;
|
|
SYSTEM_GDI_DRIVER_INFORMATION *pGdiDriverInfo;
|
|
LDEVTYPE ldevtype;
|
|
ULONG cRefs;
|
|
ULONG ulDriverVersion;
|
|
|
|
union
|
|
{
|
|
PVOID apfn[INDEX_LAST];
|
|
DRIVER_FUNCTIONS pfn;
|
|
};
|
|
|
|
} LDEVOBJ, *PLDEVOBJ;
|
|
|
|
INIT_FUNCTION
|
|
NTSTATUS
|
|
NTAPI
|
|
InitLDEVImpl(VOID);
|
|
|
|
PDEVMODEINFO
|
|
NTAPI
|
|
LDEVOBJ_pdmiGetModes(
|
|
_In_ PLDEVOBJ pldev,
|
|
_In_ HANDLE hDriver);
|
|
|
|
PLDEVOBJ
|
|
APIENTRY
|
|
EngLoadImageEx(
|
|
_In_z_ LPWSTR pwszDriverName,
|
|
_In_ ULONG ldevtype);
|
|
|
|
PLDEVOBJ
|
|
NTAPI
|
|
EngGetLDEV(
|
|
PDEVMODEW pdm);
|
|
|
|
INIT_FUNCTION
|
|
NTSTATUS
|
|
APIENTRY
|
|
DriverEntry (
|
|
_In_ PDRIVER_OBJECT DriverObject,
|
|
_In_ PUNICODE_STRING RegistryPath);
|
|
|