Change return type of PsGetCurrentProcessWin32Process to PVOID.

svn path=/trunk/; revision=36811
This commit is contained in:
Timo Kreuzer 2008-10-18 20:34:36 +00:00
parent a0cd996949
commit 35fe207a58
7 changed files with 42 additions and 19 deletions

View file

@ -42,7 +42,7 @@ PsGetCurrentThreadWin32Thread(
); );
NTKERNELAPI NTKERNELAPI
struct _W32PROCESS* PVOID
NTAPI NTAPI
PsGetCurrentProcessWin32Process( PsGetCurrentProcessWin32Process(
VOID VOID

View file

@ -1118,11 +1118,11 @@ PsGetProcessSessionId(PEPROCESS Process)
/* /*
* @implemented * @implemented
*/ */
struct _W32PROCESS* PVOID
NTAPI NTAPI
PsGetCurrentProcessWin32Process(VOID) PsGetCurrentProcessWin32Process(VOID)
{ {
return (struct _W32PROCESS*)PsGetCurrentProcess()->Win32Process; return PsGetCurrentProcess()->Win32Process;
} }
/* /*

View file

@ -43,17 +43,19 @@ IntEngCleanupDriverObjs(struct _EPROCESS *Process,
PW32PROCESS Win32Process) PW32PROCESS Win32Process)
{ {
PDRIVERGDI DrvObjInt; PDRIVERGDI DrvObjInt;
PW32PROCESS CurrentWin32Process;
IntEngLockProcessDriverObjs(PsGetCurrentProcessWin32Process()); CurrentWin32Process = PsGetCurrentProcessWin32Process();
IntEngLockProcessDriverObjs(CurrentWin32Process);
while (!IsListEmpty(&Win32Process->DriverObjListHead)) while (!IsListEmpty(&Win32Process->DriverObjListHead))
{ {
DrvObjInt = CONTAINING_RECORD(Win32Process->DriverObjListHead.Flink, DrvObjInt = CONTAINING_RECORD(Win32Process->DriverObjListHead.Flink,
DRIVERGDI, ListEntry); DRIVERGDI, ListEntry);
IntEngUnLockProcessDriverObjs(PsGetCurrentProcessWin32Process()); IntEngUnLockProcessDriverObjs(CurrentWin32Process);
EngDeleteDriverObj((HDRVOBJ)(&DrvObjInt->DriverObj), TRUE, FALSE); EngDeleteDriverObj((HDRVOBJ)(&DrvObjInt->DriverObj), TRUE, FALSE);
IntEngLockProcessDriverObjs(PsGetCurrentProcessWin32Process()); IntEngLockProcessDriverObjs(CurrentWin32Process);
} }
IntEngUnLockProcessDriverObjs(PsGetCurrentProcessWin32Process()); IntEngUnLockProcessDriverObjs(CurrentWin32Process);
} }
@ -70,6 +72,7 @@ EngCreateDriverObj(
{ {
PDRIVERGDI DrvObjInt; PDRIVERGDI DrvObjInt;
PDRIVEROBJ DrvObjUser; PDRIVEROBJ DrvObjUser;
PW32PROCESS CurrentWin32Process;
/* Create DRIVEROBJ */ /* Create DRIVEROBJ */
DrvObjInt = EngAllocMem(0, sizeof (DRIVERGDI), TAG_DRIVEROBJ); DrvObjInt = EngAllocMem(0, sizeof (DRIVERGDI), TAG_DRIVEROBJ);
@ -88,9 +91,10 @@ EngCreateDriverObj(
/* fill internal object */ /* fill internal object */
ExInitializeFastMutex(&DrvObjInt->Lock); ExInitializeFastMutex(&DrvObjInt->Lock);
IntEngLockProcessDriverObjs(PsGetCurrentProcessWin32Process()); CurrentWin32Process = PsGetCurrentProcessWin32Process();
InsertTailList(&PsGetCurrentProcessWin32Process()->DriverObjListHead, &DrvObjInt->ListEntry); IntEngLockProcessDriverObjs(CurrentWin32Process);
IntEngUnLockProcessDriverObjs(PsGetCurrentProcessWin32Process()); InsertTailList(&CurrentWin32Process->DriverObjListHead, &DrvObjInt->ListEntry);
IntEngUnLockProcessDriverObjs(CurrentWin32Process);
return (HDRVOBJ)DrvObjUser; return (HDRVOBJ)DrvObjUser;
} }
@ -109,6 +113,7 @@ EngDeleteDriverObj(
{ {
PDRIVEROBJ DrvObjUser = (PDRIVEROBJ)hdo; PDRIVEROBJ DrvObjUser = (PDRIVEROBJ)hdo;
PDRIVERGDI DrvObjInt = ObjToGDI(DrvObjUser, DRIVER); PDRIVERGDI DrvObjInt = ObjToGDI(DrvObjUser, DRIVER);
PW32PROCESS CurrentWin32Process;
/* Make sure the obj is locked */ /* Make sure the obj is locked */
if (!bLocked) if (!bLocked)
@ -129,9 +134,10 @@ EngDeleteDriverObj(
} }
/* Free the DRIVEROBJ */ /* Free the DRIVEROBJ */
IntEngLockProcessDriverObjs(PsGetCurrentProcessWin32Process()); CurrentWin32Process = PsGetCurrentProcessWin32Process();
IntEngLockProcessDriverObjs(CurrentWin32Process);
RemoveEntryList(&DrvObjInt->ListEntry); RemoveEntryList(&DrvObjInt->ListEntry);
IntEngUnLockProcessDriverObjs(PsGetCurrentProcessWin32Process()); IntEngUnLockProcessDriverObjs(CurrentWin32Process);
EngFreeMem(DrvObjInt); EngFreeMem(DrvObjInt);
return TRUE; return TRUE;

View file

@ -201,6 +201,7 @@ DesktopHeapGetUserDelta(VOID)
{ {
PW32HEAP_USER_MAPPING Mapping; PW32HEAP_USER_MAPPING Mapping;
PTHREADINFO pti; PTHREADINFO pti;
PW32PROCESS W32Process;
HANDLE hDesktopHeap; HANDLE hDesktopHeap;
ULONG_PTR Delta = 0; ULONG_PTR Delta = 0;
@ -210,7 +211,8 @@ DesktopHeapGetUserDelta(VOID)
hDesktopHeap = pti->Desktop->hDesktopHeap; hDesktopHeap = pti->Desktop->hDesktopHeap;
Mapping = PsGetCurrentProcessWin32Process()->HeapMappings.Next; W32Process = PsGetCurrentProcessWin32Process();
Mapping = W32Process->HeapMappings.Next;
while (Mapping != NULL) while (Mapping != NULL)
{ {
if (Mapping->KernelMapping == (PVOID)hDesktopHeap) if (Mapping->KernelMapping == (PVOID)hDesktopHeap)
@ -229,8 +231,10 @@ static __inline PVOID
DesktopHeapAddressToUser(PVOID lpMem) DesktopHeapAddressToUser(PVOID lpMem)
{ {
PW32HEAP_USER_MAPPING Mapping; PW32HEAP_USER_MAPPING Mapping;
PW32PROCESS W32Process;
Mapping = PsGetCurrentProcessWin32Process()->HeapMappings.Next; W32Process = PsGetCurrentProcessWin32Process();
Mapping = W32Process->HeapMappings.Next;
while (Mapping != NULL) while (Mapping != NULL)
{ {
if ((ULONG_PTR)lpMem >= (ULONG_PTR)Mapping->KernelMapping && if ((ULONG_PTR)lpMem >= (ULONG_PTR)Mapping->KernelMapping &&

View file

@ -1732,11 +1732,15 @@ static NTSTATUS
IntUnmapDesktopView(IN PDESKTOP DesktopObject) IntUnmapDesktopView(IN PDESKTOP DesktopObject)
{ {
PW32THREADINFO ti; PW32THREADINFO ti;
PW32HEAP_USER_MAPPING HeapMapping, *PrevLink = &PsGetCurrentProcessWin32Process()->HeapMappings.Next; PW32PROCESS CurrentWin32Process;
PW32HEAP_USER_MAPPING HeapMapping, *PrevLink;
NTSTATUS Status = STATUS_SUCCESS; NTSTATUS Status = STATUS_SUCCESS;
TRACE("DO %p\n"); TRACE("DO %p\n");
CurrentWin32Process = PsGetCurrentProcessWin32Process();
PrevLink = &CurrentWin32Process->HeapMappings.Next;
/* unmap if we're the last thread using the desktop */ /* unmap if we're the last thread using the desktop */
HeapMapping = *PrevLink; HeapMapping = *PrevLink;
while (HeapMapping != NULL) while (HeapMapping != NULL)
@ -1780,12 +1784,16 @@ static NTSTATUS
IntMapDesktopView(IN PDESKTOP DesktopObject) IntMapDesktopView(IN PDESKTOP DesktopObject)
{ {
PW32THREADINFO ti; PW32THREADINFO ti;
PW32HEAP_USER_MAPPING HeapMapping, *PrevLink = &PsGetCurrentProcessWin32Process()->HeapMappings.Next; PW32PROCESS CurrentWin32Process;
PW32HEAP_USER_MAPPING HeapMapping, *PrevLink;
PVOID UserBase = NULL; PVOID UserBase = NULL;
SIZE_T ViewSize = 0; SIZE_T ViewSize = 0;
LARGE_INTEGER Offset; LARGE_INTEGER Offset;
NTSTATUS Status; NTSTATUS Status;
CurrentWin32Process = PsGetCurrentProcessWin32Process();
PrevLink = &CurrentWin32Process->HeapMappings.Next;
/* find out if another thread already mapped the desktop heap */ /* find out if another thread already mapped the desktop heap */
HeapMapping = *PrevLink; HeapMapping = *PrevLink;
while (HeapMapping != NULL) while (HeapMapping != NULL)

View file

@ -313,6 +313,7 @@ PMENU_OBJECT FASTCALL
IntCreateMenu(PHANDLE Handle, BOOL IsMenuBar) IntCreateMenu(PHANDLE Handle, BOOL IsMenuBar)
{ {
PMENU_OBJECT Menu; PMENU_OBJECT Menu;
PW32PROCESS CurrentWin32Process;
Menu = (PMENU_OBJECT)UserCreateObject( Menu = (PMENU_OBJECT)UserCreateObject(
gHandleTable, Handle, gHandleTable, Handle,
@ -346,7 +347,8 @@ IntCreateMenu(PHANDLE Handle, BOOL IsMenuBar)
Menu->MenuItemList = NULL; Menu->MenuItemList = NULL;
/* Insert menu item into process menu handle list */ /* Insert menu item into process menu handle list */
InsertTailList(&PsGetCurrentProcessWin32Process()->MenuListHead, &Menu->ListEntry); CurrentWin32Process = PsGetCurrentProcessWin32Process();
InsertTailList(&CurrentWin32Process->MenuListHead, &Menu->ListEntry);
return Menu; return Menu;
} }
@ -416,6 +418,7 @@ IntCloneMenuItems(PMENU_OBJECT Destination, PMENU_OBJECT Source)
PMENU_OBJECT FASTCALL PMENU_OBJECT FASTCALL
IntCloneMenu(PMENU_OBJECT Source) IntCloneMenu(PMENU_OBJECT Source)
{ {
PW32PROCESS CurrentWin32Process;
HANDLE hMenu; HANDLE hMenu;
PMENU_OBJECT Menu; PMENU_OBJECT Menu;
@ -450,7 +453,8 @@ IntCloneMenu(PMENU_OBJECT Source)
Menu->MenuItemList = NULL; Menu->MenuItemList = NULL;
/* Insert menu item into process menu handle list */ /* Insert menu item into process menu handle list */
InsertTailList(&PsGetCurrentProcessWin32Process()->MenuListHead, &Menu->ListEntry); CurrentWin32Process = PsGetCurrentProcessWin32Process();
InsertTailList(&CurrentWin32Process->MenuListHead, &Menu->ListEntry);
IntCloneMenuItems(Menu, Source); IntCloneMenuItems(Menu, Source);

View file

@ -137,8 +137,9 @@ UserHeapReAlloc(PVOID lpMem,
static __inline PVOID static __inline PVOID
UserHeapAddressToUser(PVOID lpMem) UserHeapAddressToUser(PVOID lpMem)
{ {
PW32PROCESS W32Process = PsGetCurrentProcessWin32Process();
return (PVOID)(((ULONG_PTR)lpMem - (ULONG_PTR)GlobalUserHeap) + return (PVOID)(((ULONG_PTR)lpMem - (ULONG_PTR)GlobalUserHeap) +
(ULONG_PTR)PsGetCurrentProcessWin32Process()->HeapMappings.UserMapping); (ULONG_PTR)W32Process->HeapMappings.UserMapping);
} }
#endif /* __W32K_H */ #endif /* __W32K_H */