mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 13:16:07 +00:00
[WIN32K]
Change all Init functions to be NTAPI instead of FASTCALL, return NTSTATUS, and be an INIT_FUNCTION (saving incredible 2k). Simplify the initialization sequence by using a simple macro. Delete a comment that is not true anymore. Move some globals to appropriate file. svn path=/trunk/; revision=49455
This commit is contained in:
parent
85e5b5be56
commit
6cfc0da40b
42 changed files with 189 additions and 214 deletions
|
@ -20,15 +20,16 @@ static PGRAPHICS_DEVICE gpGraphicsDeviceLast = NULL;
|
||||||
static HSEMAPHORE ghsemGraphicsDeviceList;
|
static HSEMAPHORE ghsemGraphicsDeviceList;
|
||||||
static ULONG giDevNum = 1;
|
static ULONG giDevNum = 1;
|
||||||
|
|
||||||
BOOL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
InitDeviceImpl()
|
InitDeviceImpl()
|
||||||
{
|
{
|
||||||
ghsemGraphicsDeviceList = EngCreateSemaphore();
|
ghsemGraphicsDeviceList = EngCreateSemaphore();
|
||||||
if (!ghsemGraphicsDeviceList)
|
if (!ghsemGraphicsDeviceList)
|
||||||
return FALSE;
|
return STATUS_INSUFFICIENT_RESOURCES;
|
||||||
|
|
||||||
return TRUE;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,8 @@ LDEVOBJ *gpldevWin32k = NULL;
|
||||||
|
|
||||||
/** Private functions *********************************************************/
|
/** Private functions *********************************************************/
|
||||||
|
|
||||||
BOOL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
InitLDEVImpl()
|
InitLDEVImpl()
|
||||||
{
|
{
|
||||||
|
@ -34,7 +35,7 @@ InitLDEVImpl()
|
||||||
ghsemLDEVList = EngCreateSemaphore();
|
ghsemLDEVList = EngCreateSemaphore();
|
||||||
if (!ghsemLDEVList)
|
if (!ghsemLDEVList)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return STATUS_INSUFFICIENT_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate a LDEVOBJ for win32k */
|
/* Allocate a LDEVOBJ for win32k */
|
||||||
|
@ -44,7 +45,7 @@ InitLDEVImpl()
|
||||||
GDITAG_LDEV);
|
GDITAG_LDEV);
|
||||||
if (!gpldevWin32k)
|
if (!gpldevWin32k)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize the LDEVOBJ for win32k */
|
/* Initialize the LDEVOBJ for win32k */
|
||||||
|
@ -62,7 +63,7 @@ InitLDEVImpl()
|
||||||
gpldevWin32k->pGdiDriverInfo->ExportSectionPointer = NULL;
|
gpldevWin32k->pGdiDriverInfo->ExportSectionPointer = NULL;
|
||||||
gpldevWin32k->pGdiDriverInfo->ImageLength = 0; // FIXME;
|
gpldevWin32k->pGdiDriverInfo->ImageLength = 0; // FIXME;
|
||||||
|
|
||||||
return TRUE;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
PLDEVOBJ
|
PLDEVOBJ
|
||||||
|
|
|
@ -18,12 +18,14 @@ PPDEVOBJ gppdevPrimary = NULL;
|
||||||
static PPDEVOBJ gppdevList = NULL;
|
static PPDEVOBJ gppdevList = NULL;
|
||||||
static HSEMAPHORE ghsemPDEV;
|
static HSEMAPHORE ghsemPDEV;
|
||||||
|
|
||||||
BOOL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
InitPDEVImpl()
|
InitPDEVImpl()
|
||||||
{
|
{
|
||||||
ghsemPDEV = EngCreateSemaphore();
|
ghsemPDEV = EngCreateSemaphore();
|
||||||
return TRUE;
|
if (!ghsemPDEV) return STATUS_INSUFFICIENT_RESOURCES;
|
||||||
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -634,11 +634,13 @@ EXLATEOBJ_vCleanup(PEXLATEOBJ pexlo)
|
||||||
pexlo->xlo.pulXlate = pexlo->aulXlate;
|
pexlo->xlo.pulXlate = pexlo->aulXlate;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitXlateImpl(VOID)
|
InitXlateImpl(VOID)
|
||||||
{
|
{
|
||||||
|
|
||||||
EXLATEOBJ_vInitTrivial(&gexloTrivial);
|
EXLATEOBJ_vInitTrivial(&gexloTrivial);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,9 @@ typedef struct _ACCELERATOR_TABLE
|
||||||
LPACCEL Table;
|
LPACCEL Table;
|
||||||
} ACCELERATOR_TABLE, *PACCELERATOR_TABLE;
|
} ACCELERATOR_TABLE, *PACCELERATOR_TABLE;
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitAcceleratorImpl(VOID);
|
InitAcceleratorImpl(VOID);
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
|
|
|
@ -159,7 +159,7 @@ typedef struct _DC
|
||||||
|
|
||||||
extern PDC defaultDCstate;
|
extern PDC defaultDCstate;
|
||||||
|
|
||||||
NTSTATUS FASTCALL InitDcImpl(VOID);
|
INIT_FUNCTION NTSTATUS NTAPI InitDcImpl();
|
||||||
PPDEVOBJ FASTCALL IntEnumHDev(VOID);
|
PPDEVOBJ FASTCALL IntEnumHDev(VOID);
|
||||||
PDC NTAPI DC_AllocDcWithHandle();
|
PDC NTAPI DC_AllocDcWithHandle();
|
||||||
VOID FASTCALL DC_InitDC(HDC DCToInit);
|
VOID FASTCALL DC_InitDC(HDC DCToInit);
|
||||||
|
|
|
@ -45,7 +45,9 @@ typedef struct _SHELL_HOOK_WINDOW
|
||||||
HWND hWnd;
|
HWND hWnd;
|
||||||
} SHELL_HOOK_WINDOW, *PSHELL_HOOK_WINDOW;
|
} SHELL_HOOK_WINDOW, *PSHELL_HOOK_WINDOW;
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitDesktopImpl(VOID);
|
InitDesktopImpl(VOID);
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
|
|
|
@ -30,7 +30,8 @@ EngpRegisterGraphicsDevice(
|
||||||
PUNICODE_STRING pustrDescription,
|
PUNICODE_STRING pustrDescription,
|
||||||
PDEVMODEW pdmDefault);
|
PDEVMODEW pdmDefault);
|
||||||
|
|
||||||
BOOL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
InitDeviceImpl();
|
InitDeviceImpl();
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,8 @@ enum BASEFLAGS
|
||||||
BASEFLAG_READY_TO_DIE = 0x1000
|
BASEFLAG_READY_TO_DIE = 0x1000
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern PSECTION_OBJECT GdiTableSection;
|
||||||
|
|
||||||
BOOL INTERNAL_CALL GDIOBJ_OwnedByCurrentProcess(HGDIOBJ ObjectHandle);
|
BOOL INTERNAL_CALL GDIOBJ_OwnedByCurrentProcess(HGDIOBJ ObjectHandle);
|
||||||
BOOL INTERNAL_CALL GDIOBJ_SetOwnership(HGDIOBJ ObjectHandle, PEPROCESS Owner);
|
BOOL INTERNAL_CALL GDIOBJ_SetOwnership(HGDIOBJ ObjectHandle, PEPROCESS Owner);
|
||||||
BOOL INTERNAL_CALL GDIOBJ_CopyOwnership(HGDIOBJ CopyFrom, HGDIOBJ CopyTo);
|
BOOL INTERNAL_CALL GDIOBJ_CopyOwnership(HGDIOBJ CopyFrom, HGDIOBJ CopyTo);
|
||||||
|
@ -75,6 +77,11 @@ VOID INTERNAL_CALL GDIOBJ_LockMultipleObjs(ULONG ulCount, IN HGDIOBJ* ahObj, OUT
|
||||||
|
|
||||||
PVOID INTERNAL_CALL GDI_MapHandleTable(PSECTION_OBJECT SectionObject, PEPROCESS Process);
|
PVOID INTERNAL_CALL GDI_MapHandleTable(PSECTION_OBJECT SectionObject, PEPROCESS Process);
|
||||||
|
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
InitGdiHandleTable();
|
||||||
|
|
||||||
#define GDIOBJ_GetObjectType(Handle) \
|
#define GDIOBJ_GetObjectType(Handle) \
|
||||||
GDI_HANDLE_GET_TYPE(Handle)
|
GDI_HANDLE_GET_TYPE(Handle)
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,9 @@ BOOL FASTCALL co_IntGraphicsCheck(BOOL Create);
|
||||||
BOOL FASTCALL IntCreatePrimarySurface(VOID);
|
BOOL FASTCALL IntCreatePrimarySurface(VOID);
|
||||||
VOID FASTCALL IntDestroyPrimarySurface(VOID);
|
VOID FASTCALL IntDestroyPrimarySurface(VOID);
|
||||||
|
|
||||||
NTSTATUS FASTCALL InitGuiCheckImpl (VOID);
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
InitGuiCheckImpl (VOID);
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -13,7 +13,9 @@ typedef struct _HOT_KEY_ITEM
|
||||||
UINT vk;
|
UINT vk;
|
||||||
} HOT_KEY_ITEM, *PHOT_KEY_ITEM;
|
} HOT_KEY_ITEM, *PHOT_KEY_ITEM;
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitHotkeyImpl(VOID);
|
InitHotkeyImpl(VOID);
|
||||||
|
|
||||||
//NTSTATUS FASTCALL
|
//NTSTATUS FASTCALL
|
||||||
|
|
|
@ -27,10 +27,16 @@ extern PATTACHINFO gpai;
|
||||||
#define KBL_PRELOAD 2
|
#define KBL_PRELOAD 2
|
||||||
#define KBL_RESET 4
|
#define KBL_RESET 4
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitInputImpl(VOID);
|
InitInputImpl(VOID);
|
||||||
NTSTATUS FASTCALL
|
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitKeyboardImpl(VOID);
|
InitKeyboardImpl(VOID);
|
||||||
|
|
||||||
PUSER_MESSAGE_QUEUE W32kGetPrimitiveMessageQueue(VOID);
|
PUSER_MESSAGE_QUEUE W32kGetPrimitiveMessageQueue(VOID);
|
||||||
VOID W32kUnregisterPrimitiveMessageQueue(VOID);
|
VOID W32kUnregisterPrimitiveMessageQueue(VOID);
|
||||||
PKBL W32kGetDefaultKeyLayout(VOID);
|
PKBL W32kGetDefaultKeyLayout(VOID);
|
||||||
|
|
|
@ -82,32 +82,6 @@ IntEngGradientFill(SURFOBJ *psoDest,
|
||||||
POINTL *pptlDitherOrg,
|
POINTL *pptlDitherOrg,
|
||||||
ULONG ulMode);
|
ULONG ulMode);
|
||||||
|
|
||||||
VOID InitXlateImpl(VOID);
|
|
||||||
|
|
||||||
XLATEOBJ* FASTCALL
|
|
||||||
IntEngCreateXlate(USHORT DestPalType,
|
|
||||||
USHORT SourcePalType,
|
|
||||||
HPALETTE PaletteDest,
|
|
||||||
HPALETTE PaletteSource);
|
|
||||||
|
|
||||||
XLATEOBJ* FASTCALL
|
|
||||||
IntEngCreateMonoXlate(USHORT SourcePalType,
|
|
||||||
HPALETTE PaletteDest,
|
|
||||||
HPALETTE PaletteSource,
|
|
||||||
ULONG BackgroundColor);
|
|
||||||
|
|
||||||
XLATEOBJ* FASTCALL
|
|
||||||
IntEngCreateSrcMonoXlate(HPALETTE PaletteDest,
|
|
||||||
ULONG Color0,
|
|
||||||
ULONG Color1);
|
|
||||||
|
|
||||||
XLATEOBJ*
|
|
||||||
IntCreateBrushXlate(BRUSH *pbrush, SURFACE * psurf, COLORREF crBackgroundClr);
|
|
||||||
|
|
||||||
HPALETTE FASTCALL
|
|
||||||
IntEngGetXlatePalette(XLATEOBJ *XlateObj,
|
|
||||||
ULONG Palette);
|
|
||||||
|
|
||||||
BOOL APIENTRY
|
BOOL APIENTRY
|
||||||
IntEngPolyline(SURFOBJ *DestSurf,
|
IntEngPolyline(SURFOBJ *DestSurf,
|
||||||
CLIPOBJ *Clip,
|
CLIPOBJ *Clip,
|
||||||
|
|
|
@ -63,7 +63,8 @@ LDEVOBJ_pdmiGetModes(
|
||||||
PLDEVOBJ pldev,
|
PLDEVOBJ pldev,
|
||||||
HANDLE hDriver);
|
HANDLE hDriver);
|
||||||
|
|
||||||
BOOL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
InitLDEVImpl();
|
InitLDEVImpl();
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,9 @@ IntInsertMenuItem(PMENU_OBJECT MenuObject, UINT uItem, BOOL fByPosition,
|
||||||
PROSMENUITEMINFO ItemInfo);
|
PROSMENUITEMINFO ItemInfo);
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitMenuImpl(VOID);
|
InitMenuImpl(VOID);
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
|
|
|
@ -32,7 +32,10 @@ typedef struct _MONITOR
|
||||||
} MONITOR, *PMONITOR;
|
} MONITOR, *PMONITOR;
|
||||||
|
|
||||||
/* functions */
|
/* functions */
|
||||||
NTSTATUS InitMonitorImpl();
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
InitMonitorImpl();
|
||||||
NTSTATUS CleanupMonitorImpl();
|
NTSTATUS CleanupMonitorImpl();
|
||||||
|
|
||||||
NTSTATUS IntAttachMonitor(PDEVOBJ *pGdiDevice, ULONG DisplayNumber);
|
NTSTATUS IntAttachMonitor(PDEVOBJ *pGdiDevice, ULONG DisplayNumber);
|
||||||
|
|
|
@ -138,7 +138,9 @@ VOID FASTCALL
|
||||||
MsqDestroyMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue);
|
MsqDestroyMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue);
|
||||||
PUSER_MESSAGE_QUEUE FASTCALL
|
PUSER_MESSAGE_QUEUE FASTCALL
|
||||||
MsqGetHardwareMessageQueue(VOID);
|
MsqGetHardwareMessageQueue(VOID);
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MsqInitializeImpl(VOID);
|
MsqInitializeImpl(VOID);
|
||||||
BOOLEAN FASTCALL
|
BOOLEAN FASTCALL
|
||||||
co_MsqDispatchOneSentMessage(PUSER_MESSAGE_QUEUE MessageQueue);
|
co_MsqDispatchOneSentMessage(PUSER_MESSAGE_QUEUE MessageQueue);
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
extern PSERVERINFO gpsi;
|
extern PSERVERINFO gpsi;
|
||||||
|
|
||||||
NTSTATUS FASTCALL InitUserImpl(VOID);
|
INIT_FUNCTION NTSTATUS NTAPI InitUserImpl(VOID);
|
||||||
VOID FASTCALL CleanupUserImpl(VOID);
|
VOID FASTCALL CleanupUserImpl(VOID);
|
||||||
VOID FASTCALL UserEnterShared(VOID);
|
VOID FASTCALL UserEnterShared(VOID);
|
||||||
VOID FASTCALL UserEnterExclusive(VOID);
|
VOID FASTCALL UserEnterExclusive(VOID);
|
||||||
|
|
|
@ -74,8 +74,7 @@ HPALETTE FASTCALL PALETTE_AllocPaletteIndexedRGB(ULONG NumColors,
|
||||||
GDIOBJ_ShareUnlockObjByPtr(&ppal->BaseObject)
|
GDIOBJ_ShareUnlockObjByPtr(&ppal->BaseObject)
|
||||||
|
|
||||||
BOOL INTERNAL_CALL PALETTE_Cleanup(PVOID ObjectBody);
|
BOOL INTERNAL_CALL PALETTE_Cleanup(PVOID ObjectBody);
|
||||||
|
INIT_FUNCTION NTSTATUS NTAPI InitPaletteImpl();
|
||||||
HPALETTE FASTCALL PALETTE_Init (VOID);
|
|
||||||
VOID FASTCALL PALETTE_ValidateFlags (PALETTEENTRY* lpPalE, INT size);
|
VOID FASTCALL PALETTE_ValidateFlags (PALETTEENTRY* lpPalE, INT size);
|
||||||
INT FASTCALL PALETTE_ToPhysical (PDC dc, COLORREF color);
|
INT FASTCALL PALETTE_ToPhysical (PDC dc, COLORREF color);
|
||||||
|
|
||||||
|
|
|
@ -174,18 +174,11 @@ PDEVOBJ_vGetDeviceCaps(
|
||||||
PPDEVOBJ ppdev,
|
PPDEVOBJ ppdev,
|
||||||
PDEVCAPS pDevCaps);
|
PDEVCAPS pDevCaps);
|
||||||
|
|
||||||
BOOL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
InitPDEVImpl();
|
InitPDEVImpl();
|
||||||
|
|
||||||
BOOL
|
|
||||||
NTAPI
|
|
||||||
InitLDEVImpl();
|
|
||||||
|
|
||||||
BOOL
|
|
||||||
NTAPI
|
|
||||||
InitDeviceImpl();
|
|
||||||
|
|
||||||
PSIZEL
|
PSIZEL
|
||||||
FASTCALL
|
FASTCALL
|
||||||
PDEVOBJ_sizl(PPDEVOBJ, PSIZEL);
|
PDEVOBJ_sizl(PPDEVOBJ, PSIZEL);
|
||||||
|
|
|
@ -26,7 +26,10 @@ typedef struct _TIMER
|
||||||
|
|
||||||
extern PKTIMER MasterTimer;
|
extern PKTIMER MasterTimer;
|
||||||
|
|
||||||
NTSTATUS FASTCALL InitTimerImpl(VOID);
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
InitTimerImpl(VOID);
|
||||||
BOOL FASTCALL DestroyTimersForThread(PTHREADINFO pti);
|
BOOL FASTCALL DestroyTimersForThread(PTHREADINFO pti);
|
||||||
BOOL FASTCALL DestroyTimersForWindow(PTHREADINFO pti, PWND Window);
|
BOOL FASTCALL DestroyTimersForWindow(PTHREADINFO pti, PWND Window);
|
||||||
BOOL FASTCALL IntKillTimer(PWND Window, UINT_PTR IDEvent, BOOL SystemTimer);
|
BOOL FASTCALL IntKillTimer(PWND Window, UINT_PTR IDEvent, BOOL SystemTimer);
|
||||||
|
|
|
@ -11,6 +11,9 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#define INTERNAL_CALL APIENTRY
|
#define INTERNAL_CALL APIENTRY
|
||||||
|
|
||||||
|
#define PLACE_IN_SECTION(s) __attribute__((section(s)))
|
||||||
|
#define INIT_FUNCTION PLACE_IN_SECTION("INIT")
|
||||||
|
|
||||||
/* Internal Win32k Headers */
|
/* Internal Win32k Headers */
|
||||||
#include <include/accelerator.h>
|
#include <include/accelerator.h>
|
||||||
#include <include/clipboard.h>
|
#include <include/clipboard.h>
|
||||||
|
|
|
@ -50,7 +50,9 @@ IntIsWindow(HWND hWnd);
|
||||||
HWND* FASTCALL
|
HWND* FASTCALL
|
||||||
IntWinListChildren(PWND Window);
|
IntWinListChildren(PWND Window);
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitWindowImpl (VOID);
|
InitWindowImpl (VOID);
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
|
|
|
@ -62,7 +62,9 @@ typedef struct _WINSTATION_OBJECT
|
||||||
extern WINSTATION_OBJECT *InputWindowStation;
|
extern WINSTATION_OBJECT *InputWindowStation;
|
||||||
extern PPROCESSINFO LogonProcess;
|
extern PPROCESSINFO LogonProcess;
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitWindowStationImpl(VOID);
|
InitWindowStationImpl(VOID);
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
|
|
|
@ -47,5 +47,9 @@ VOID NTAPI EXLATEOBJ_vInitialize(PEXLATEOBJ pexlo, PALETTE *ppalSrc, PALETTE *pp
|
||||||
VOID NTAPI EXLATEOBJ_vInitXlateFromDCs(PEXLATEOBJ pexlo, PDC pdcSrc, PDC pdcDst);
|
VOID NTAPI EXLATEOBJ_vInitXlateFromDCs(PEXLATEOBJ pexlo, PDC pdcSrc, PDC pdcDst);
|
||||||
VOID NTAPI EXLATEOBJ_vInitSrcMonoXlate(PEXLATEOBJ pexlo, PPALETTE ppalDst, ULONG Color0, ULONG Color1);
|
VOID NTAPI EXLATEOBJ_vInitSrcMonoXlate(PEXLATEOBJ pexlo, PPALETTE ppalDst, ULONG Color0, ULONG Color1);
|
||||||
VOID NTAPI EXLATEOBJ_vCleanup(PEXLATEOBJ pexlo);
|
VOID NTAPI EXLATEOBJ_vCleanup(PEXLATEOBJ pexlo);
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
InitXlateImpl(VOID);
|
||||||
|
|
||||||
//#define XLATEOBJ_iXlate(pxo, Color) ((EXLATEOBJ*)pxo)->pfnXlate(pxo, Color)
|
//#define XLATEOBJ_iXlate(pxo, Color) ((EXLATEOBJ*)pxo)->pfnXlate(pxo, Color)
|
||||||
|
|
|
@ -16,17 +16,12 @@ HANDLE hModuleWin;
|
||||||
|
|
||||||
PGDI_HANDLE_TABLE INTERNAL_CALL GDIOBJ_iAllocHandleTable(OUT PSECTION_OBJECT *SectionObject);
|
PGDI_HANDLE_TABLE INTERNAL_CALL GDIOBJ_iAllocHandleTable(OUT PSECTION_OBJECT *SectionObject);
|
||||||
BOOL INTERNAL_CALL GDI_CleanupForProcess (struct _EPROCESS *Process);
|
BOOL INTERNAL_CALL GDI_CleanupForProcess (struct _EPROCESS *Process);
|
||||||
/* FIXME */
|
|
||||||
PGDI_HANDLE_TABLE GdiHandleTable = NULL;
|
|
||||||
PSECTION_OBJECT GdiTableSection = NULL;
|
|
||||||
|
|
||||||
HANDLE GlobalUserHeap = NULL;
|
HANDLE GlobalUserHeap = NULL;
|
||||||
PSECTION_OBJECT GlobalUserHeapSection = NULL;
|
PSECTION_OBJECT GlobalUserHeapSection = NULL;
|
||||||
|
|
||||||
PSERVERINFO gpsi = NULL; // Global User Server Information.
|
PSERVERINFO gpsi = NULL; // Global User Server Information.
|
||||||
|
|
||||||
HSEMAPHORE hsemDriverMgmt = NULL;
|
|
||||||
|
|
||||||
SHORT gusLanguageID;
|
SHORT gusLanguageID;
|
||||||
|
|
||||||
extern ULONG_PTR Win32kSSDT[];
|
extern ULONG_PTR Win32kSSDT[];
|
||||||
|
@ -315,8 +310,6 @@ CLEANUP:
|
||||||
END_CLEANUP;
|
END_CLEANUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Only used in ntuser/input.c KeyboardThreadMain(). If it's
|
|
||||||
not called there anymore, please delete */
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
Win32kInitWin32Thread(PETHREAD Thread)
|
Win32kInitWin32Thread(PETHREAD Thread)
|
||||||
{
|
{
|
||||||
|
@ -354,10 +347,21 @@ Win32kInitWin32Thread(PETHREAD Thread)
|
||||||
|
|
||||||
C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);
|
C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE);
|
||||||
|
|
||||||
|
// Return on failure
|
||||||
|
#define NT_ROF(x) \
|
||||||
|
Status = (x); \
|
||||||
|
if (!NT_SUCCESS(Status)) \
|
||||||
|
{ \
|
||||||
|
DPRINT1("Failed '%s' (0x%lx)\n", #x, Status); \
|
||||||
|
return Status; \
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This definition doesn't work
|
* This definition doesn't work
|
||||||
*/
|
*/
|
||||||
NTSTATUS APIENTRY
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
APIENTRY
|
||||||
DriverEntry(
|
DriverEntry(
|
||||||
IN PDRIVER_OBJECT DriverObject,
|
IN PDRIVER_OBJECT DriverObject,
|
||||||
IN PUNICODE_STRING RegistryPath)
|
IN PUNICODE_STRING RegistryPath)
|
||||||
|
@ -407,146 +411,48 @@ DriverEntry (
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate global server info structure */
|
/* Allocate global server info structure */
|
||||||
|
gpsi = UserHeapAlloc(sizeof(SERVERINFO));
|
||||||
if (!gpsi)
|
if (!gpsi)
|
||||||
{
|
{
|
||||||
gpsi = UserHeapAlloc(sizeof(SERVERINFO));
|
DPRINT1("Failed allocate server info structure!\n");
|
||||||
if (gpsi)
|
|
||||||
{
|
|
||||||
RtlZeroMemory(gpsi, sizeof(SERVERINFO));
|
|
||||||
DPRINT("Global Server Data -> %x\n", gpsi);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ASSERT(FALSE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!hsemDriverMgmt) hsemDriverMgmt = EngCreateSemaphore();
|
|
||||||
|
|
||||||
/* Create the GDI handle table */
|
|
||||||
GdiHandleTable = GDIOBJ_iAllocHandleTable(&GdiTableSection);
|
|
||||||
if (GdiHandleTable == NULL)
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize the GDI handle table.\n");
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
return STATUS_UNSUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize default palettes */
|
RtlZeroMemory(gpsi, sizeof(SERVERINFO));
|
||||||
PALETTE_Init();
|
DPRINT("Global Server Data -> %x\n", gpsi);
|
||||||
|
|
||||||
|
NT_ROF(InitGdiHandleTable());
|
||||||
|
NT_ROF(InitPaletteImpl());
|
||||||
|
|
||||||
/* Create stock objects, ie. precreated objects commonly
|
/* Create stock objects, ie. precreated objects commonly
|
||||||
used by win32 applications */
|
used by win32 applications */
|
||||||
CreateStockObjects();
|
CreateStockObjects();
|
||||||
CreateSysColorObjects();
|
CreateSysColorObjects();
|
||||||
|
|
||||||
InitXlateImpl();
|
NT_ROF(InitXlateImpl());
|
||||||
InitPDEVImpl();
|
NT_ROF(InitPDEVImpl());
|
||||||
InitLDEVImpl();
|
NT_ROF(InitLDEVImpl());
|
||||||
InitDeviceImpl();
|
NT_ROF(InitDeviceImpl());
|
||||||
|
NT_ROF(InitDcImpl());
|
||||||
Status = InitDcImpl();
|
NT_ROF(InitUserImpl());
|
||||||
if (!NT_SUCCESS(Status))
|
NT_ROF(InitHotkeyImpl());
|
||||||
{
|
NT_ROF(InitWindowStationImpl());
|
||||||
DPRINT1("Failed to initialize Device context implementation!\n");
|
NT_ROF(InitDesktopImpl());
|
||||||
return STATUS_UNSUCCESSFUL;
|
NT_ROF(InitWindowImpl());
|
||||||
}
|
NT_ROF(InitMenuImpl());
|
||||||
|
NT_ROF(InitInputImpl());
|
||||||
Status = InitUserImpl();
|
NT_ROF(InitKeyboardImpl());
|
||||||
if (!NT_SUCCESS(Status))
|
NT_ROF(InitMonitorImpl());
|
||||||
{
|
NT_ROF(MsqInitializeImpl());
|
||||||
DPRINT1("Failed to initialize user implementation!\n");
|
NT_ROF(InitTimerImpl());
|
||||||
return STATUS_UNSUCCESSFUL;
|
NT_ROF(InitAcceleratorImpl());
|
||||||
}
|
NT_ROF(InitGuiCheckImpl());
|
||||||
|
|
||||||
Status = InitHotkeyImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize hotkey implementation!\n");
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitWindowStationImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize window station implementation!\n");
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitDesktopImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize desktop implementation!\n");
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitWindowImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize window implementation!\n");
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitMenuImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize menu implementation!\n");
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitInputImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize input implementation.\n");
|
|
||||||
return(Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitKeyboardImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize keyboard implementation.\n");
|
|
||||||
return(Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitMonitorImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DbgPrint("Failed to initialize monitor implementation!\n");
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = MsqInitializeImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize message queue implementation.\n");
|
|
||||||
return(Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitTimerImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize timer implementation.\n");
|
|
||||||
return(Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitAcceleratorImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize accelerator implementation.\n");
|
|
||||||
return(Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = InitGuiCheckImpl();
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("Failed to initialize GUI check implementation.\n");
|
|
||||||
return(Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialize FreeType library */
|
/* Initialize FreeType library */
|
||||||
if (!InitFontSupport())
|
if (!InitFontSupport())
|
||||||
{
|
{
|
||||||
DPRINT1("Unable to initialize font support\n");
|
DPRINT1("Unable to initialize font support\n");
|
||||||
return STATUS_UNSUCCESSFUL;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
gusLanguageID = IntGdiGetLanguageID();
|
gusLanguageID = IntGdiGetLanguageID();
|
||||||
|
|
|
@ -56,7 +56,9 @@
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitAcceleratorImpl(VOID)
|
InitAcceleratorImpl(VOID)
|
||||||
{
|
{
|
||||||
return(STATUS_SUCCESS);
|
return(STATUS_SUCCESS);
|
||||||
|
|
|
@ -170,8 +170,9 @@ IntDesktopObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters)
|
||||||
|
|
||||||
/* PRIVATE FUNCTIONS **********************************************************/
|
/* PRIVATE FUNCTIONS **********************************************************/
|
||||||
|
|
||||||
|
INIT_FUNCTION
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
FASTCALL
|
NTAPI
|
||||||
InitDesktopImpl(VOID)
|
InitDesktopImpl(VOID)
|
||||||
{
|
{
|
||||||
/* Set Desktop Object Attributes */
|
/* Set Desktop Object Attributes */
|
||||||
|
|
|
@ -130,7 +130,9 @@ IntUserManualGuiCheck(LONG Check)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitGuiCheckImpl (VOID)
|
InitGuiCheckImpl (VOID)
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
|
|
|
@ -51,7 +51,9 @@ LIST_ENTRY gHotkeyList;
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitHotkeyImpl(VOID)
|
InitHotkeyImpl(VOID)
|
||||||
{
|
{
|
||||||
InitializeListHead(&gHotkeyList);
|
InitializeListHead(&gHotkeyList);
|
||||||
|
|
|
@ -922,7 +922,9 @@ RawInputThreadMain(PVOID StartContext)
|
||||||
DPRINT1("Raw Input Thread Exit!\n");
|
DPRINT1("Raw Input Thread Exit!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitInputImpl(VOID)
|
InitInputImpl(VOID)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
|
@ -58,7 +58,10 @@ BYTE gQueueKeyStateTable[256];
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
/* Initialization -- Right now, just zero the key state and init the lock */
|
/* Initialization -- Right now, just zero the key state and init the lock */
|
||||||
NTSTATUS FASTCALL InitKeyboardImpl(VOID)
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
InitKeyboardImpl(VOID)
|
||||||
{
|
{
|
||||||
RtlZeroMemory(&gQueueKeyStateTable,0x100);
|
RtlZeroMemory(&gQueueKeyStateTable,0x100);
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
|
|
|
@ -86,7 +86,9 @@ UserMenuInfo(
|
||||||
( ((r).bottom >= y)) && \
|
( ((r).bottom >= y)) && \
|
||||||
( ((r).top <= y)) )
|
( ((r).top <= y)) )
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitMenuImpl(VOID)
|
InitMenuImpl(VOID)
|
||||||
{
|
{
|
||||||
return(STATUS_SUCCESS);
|
return(STATUS_SUCCESS);
|
||||||
|
|
|
@ -28,7 +28,9 @@ static PMONITOR gMonitorList = NULL;
|
||||||
|
|
||||||
/* INITALIZATION FUNCTIONS ****************************************************/
|
/* INITALIZATION FUNCTIONS ****************************************************/
|
||||||
|
|
||||||
|
INIT_FUNCTION
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitMonitorImpl()
|
InitMonitorImpl()
|
||||||
{
|
{
|
||||||
DPRINT("Initializing monitor implementation...\n");
|
DPRINT("Initializing monitor implementation...\n");
|
||||||
|
|
|
@ -140,7 +140,9 @@ MsqDecPaintCountQueue(PUSER_MESSAGE_QUEUE Queue)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
MsqInitializeImpl(VOID)
|
MsqInitializeImpl(VOID)
|
||||||
{
|
{
|
||||||
/*CurrentFocusMessageQueue = NULL;*/
|
/*CurrentFocusMessageQueue = NULL;*/
|
||||||
|
|
|
@ -53,8 +53,10 @@ InitUserAtoms(VOID)
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
INIT_FUNCTION
|
||||||
NTSTATUS FASTCALL InitUserImpl(VOID)
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
InitUserImpl(VOID)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
|
|
@ -527,7 +527,9 @@ IntKillTimer(PWND Window, UINT_PTR IDEvent, BOOL SystemTimer)
|
||||||
return pTmr ? TRUE : FALSE;
|
return pTmr ? TRUE : FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitTimerImpl(VOID)
|
InitTimerImpl(VOID)
|
||||||
{
|
{
|
||||||
ULONG BitmapBytes;
|
ULONG BitmapBytes;
|
||||||
|
|
|
@ -29,7 +29,9 @@
|
||||||
* Initialize windowing implementation.
|
* Initialize windowing implementation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitWindowImpl(VOID)
|
InitWindowImpl(VOID)
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
|
|
|
@ -56,7 +56,9 @@ static GENERIC_MAPPING IntWindowStationMapping =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitWindowStationImpl(VOID)
|
InitWindowStationImpl(VOID)
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
|
|
|
@ -58,7 +58,9 @@ static const MATRIX gmxWorldToPageDefault =
|
||||||
|
|
||||||
/** Internal functions ********************************************************/
|
/** Internal functions ********************************************************/
|
||||||
|
|
||||||
|
INIT_FUNCTION
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InitDcImpl()
|
InitDcImpl()
|
||||||
{
|
{
|
||||||
psurfDefaultBitmap = SURFACE_ShareLockSurface(StockObjects[DEFAULT_BITMAP]);
|
psurfDefaultBitmap = SURFACE_ShareLockSurface(StockObjects[DEFAULT_BITMAP]);
|
||||||
|
|
|
@ -81,6 +81,8 @@ OBJ_TYPE_INFO ObjTypeInfo[BASE_OBJTYPE_COUNT] =
|
||||||
};
|
};
|
||||||
|
|
||||||
static LARGE_INTEGER ShortDelay;
|
static LARGE_INTEGER ShortDelay;
|
||||||
|
PGDI_HANDLE_TABLE GdiHandleTable = NULL;
|
||||||
|
PSECTION_OBJECT GdiTableSection = NULL;
|
||||||
|
|
||||||
/** INTERNAL FUNCTIONS ********************************************************/
|
/** INTERNAL FUNCTIONS ********************************************************/
|
||||||
|
|
||||||
|
@ -151,7 +153,9 @@ GDI_CleanupDummy(PVOID ObjectBody)
|
||||||
* Allocate GDI object table.
|
* Allocate GDI object table.
|
||||||
* \param Size - number of entries in the object table.
|
* \param Size - number of entries in the object table.
|
||||||
*/
|
*/
|
||||||
PGDI_HANDLE_TABLE INTERNAL_CALL
|
INIT_FUNCTION
|
||||||
|
PGDI_HANDLE_TABLE
|
||||||
|
INTERNAL_CALL
|
||||||
GDIOBJ_iAllocHandleTable(OUT PSECTION_OBJECT *SectionObject)
|
GDIOBJ_iAllocHandleTable(OUT PSECTION_OBJECT *SectionObject)
|
||||||
{
|
{
|
||||||
PGDI_HANDLE_TABLE HandleTable = NULL;
|
PGDI_HANDLE_TABLE HandleTable = NULL;
|
||||||
|
@ -221,6 +225,23 @@ GDIOBJ_iAllocHandleTable(OUT PSECTION_OBJECT *SectionObject)
|
||||||
return HandleTable;
|
return HandleTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
InitGdiHandleTable()
|
||||||
|
{
|
||||||
|
/* Create the GDI handle table */
|
||||||
|
GdiHandleTable = GDIOBJ_iAllocHandleTable(&GdiTableSection);
|
||||||
|
if (GdiHandleTable == NULL)
|
||||||
|
{
|
||||||
|
DPRINT1("Failed to initialize the GDI handle table.\n");
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void FASTCALL
|
static void FASTCALL
|
||||||
LockErrorDebugOutput(HGDIOBJ hObj, PGDI_TABLE_ENTRY Entry, LPSTR Function)
|
LockErrorDebugOutput(HGDIOBJ hObj, PGDI_TABLE_ENTRY Entry, LPSTR Function)
|
||||||
{
|
{
|
||||||
|
|
|
@ -57,7 +57,10 @@ unsigned short GetNumberOfBits(unsigned int dwMask)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the system palette
|
// Create the system palette
|
||||||
HPALETTE FASTCALL PALETTE_Init(VOID)
|
INIT_FUNCTION
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
InitPaletteImpl()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
HPALETTE hpalette;
|
HPALETTE hpalette;
|
||||||
|
@ -68,7 +71,7 @@ HPALETTE FASTCALL PALETTE_Init(VOID)
|
||||||
sizeof(LOGPALETTE) +
|
sizeof(LOGPALETTE) +
|
||||||
(NB_RESERVED_COLORS * sizeof(PALETTEENTRY)),
|
(NB_RESERVED_COLORS * sizeof(PALETTEENTRY)),
|
||||||
TAG_PALETTE);
|
TAG_PALETTE);
|
||||||
if (!palPtr) return FALSE;
|
if (!palPtr) return STATUS_NO_MEMORY;
|
||||||
|
|
||||||
palPtr->palVersion = 0x300;
|
palPtr->palVersion = 0x300;
|
||||||
palPtr->palNumEntries = NB_RESERVED_COLORS;
|
palPtr->palNumEntries = NB_RESERVED_COLORS;
|
||||||
|
@ -131,7 +134,7 @@ HPALETTE FASTCALL PALETTE_Init(VOID)
|
||||||
appalSurfaceDefault[BMF_JPEG] = &gpalRGB;
|
appalSurfaceDefault[BMF_JPEG] = &gpalRGB;
|
||||||
appalSurfaceDefault[BMF_PNG] = &gpalRGB;
|
appalSurfaceDefault[BMF_PNG] = &gpalRGB;
|
||||||
|
|
||||||
return hpalette;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID FASTCALL PALETTE_ValidateFlags(PALETTEENTRY* lpPalE, INT size)
|
VOID FASTCALL PALETTE_ValidateFlags(PALETTEENTRY* lpPalE, INT size)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue