);
NTKERNELAPI
-struct _W32PROCESS*
+PVOID
NTAPI
PsGetCurrentProcessWin32Process(
VOID
/*
* @implemented
*/
-struct _W32PROCESS*
+PVOID
NTAPI
PsGetCurrentProcessWin32Process(VOID)
{
- return (struct _W32PROCESS*)PsGetCurrentProcess()->Win32Process;
+ return PsGetCurrentProcess()->Win32Process;
}
/*
PW32PROCESS Win32Process)
{
PDRIVERGDI DrvObjInt;
+ PW32PROCESS CurrentWin32Process;
- IntEngLockProcessDriverObjs(PsGetCurrentProcessWin32Process());
+ CurrentWin32Process = PsGetCurrentProcessWin32Process();
+ IntEngLockProcessDriverObjs(CurrentWin32Process);
while (!IsListEmpty(&Win32Process->DriverObjListHead))
{
DrvObjInt = CONTAINING_RECORD(Win32Process->DriverObjListHead.Flink,
DRIVERGDI, ListEntry);
- IntEngUnLockProcessDriverObjs(PsGetCurrentProcessWin32Process());
+ IntEngUnLockProcessDriverObjs(CurrentWin32Process);
EngDeleteDriverObj((HDRVOBJ)(&DrvObjInt->DriverObj), TRUE, FALSE);
- IntEngLockProcessDriverObjs(PsGetCurrentProcessWin32Process());
+ IntEngLockProcessDriverObjs(CurrentWin32Process);
}
- IntEngUnLockProcessDriverObjs(PsGetCurrentProcessWin32Process());
+ IntEngUnLockProcessDriverObjs(CurrentWin32Process);
}
{
PDRIVERGDI DrvObjInt;
PDRIVEROBJ DrvObjUser;
+ PW32PROCESS CurrentWin32Process;
/* Create DRIVEROBJ */
DrvObjInt = EngAllocMem(0, sizeof (DRIVERGDI), TAG_DRIVEROBJ);
/* fill internal object */
ExInitializeFastMutex(&DrvObjInt->Lock);
- IntEngLockProcessDriverObjs(PsGetCurrentProcessWin32Process());
- InsertTailList(&PsGetCurrentProcessWin32Process()->DriverObjListHead, &DrvObjInt->ListEntry);
- IntEngUnLockProcessDriverObjs(PsGetCurrentProcessWin32Process());
+ CurrentWin32Process = PsGetCurrentProcessWin32Process();
+ IntEngLockProcessDriverObjs(CurrentWin32Process);
+ InsertTailList(&CurrentWin32Process->DriverObjListHead, &DrvObjInt->ListEntry);
+ IntEngUnLockProcessDriverObjs(CurrentWin32Process);
return (HDRVOBJ)DrvObjUser;
}
{
PDRIVEROBJ DrvObjUser = (PDRIVEROBJ)hdo;
PDRIVERGDI DrvObjInt = ObjToGDI(DrvObjUser, DRIVER);
+ PW32PROCESS CurrentWin32Process;
/* Make sure the obj is locked */
if (!bLocked)
}
/* Free the DRIVEROBJ */
- IntEngLockProcessDriverObjs(PsGetCurrentProcessWin32Process());
+ CurrentWin32Process = PsGetCurrentProcessWin32Process();
+ IntEngLockProcessDriverObjs(CurrentWin32Process);
RemoveEntryList(&DrvObjInt->ListEntry);
- IntEngUnLockProcessDriverObjs(PsGetCurrentProcessWin32Process());
+ IntEngUnLockProcessDriverObjs(CurrentWin32Process);
EngFreeMem(DrvObjInt);
return TRUE;
{
PW32HEAP_USER_MAPPING Mapping;
PTHREADINFO pti;
+ PW32PROCESS W32Process;
HANDLE hDesktopHeap;
ULONG_PTR Delta = 0;
hDesktopHeap = pti->Desktop->hDesktopHeap;
- Mapping = PsGetCurrentProcessWin32Process()->HeapMappings.Next;
+ W32Process = PsGetCurrentProcessWin32Process();
+ Mapping = W32Process->HeapMappings.Next;
while (Mapping != NULL)
{
if (Mapping->KernelMapping == (PVOID)hDesktopHeap)
DesktopHeapAddressToUser(PVOID lpMem)
{
PW32HEAP_USER_MAPPING Mapping;
+ PW32PROCESS W32Process;
- Mapping = PsGetCurrentProcessWin32Process()->HeapMappings.Next;
+ W32Process = PsGetCurrentProcessWin32Process();
+ Mapping = W32Process->HeapMappings.Next;
while (Mapping != NULL)
{
if ((ULONG_PTR)lpMem >= (ULONG_PTR)Mapping->KernelMapping &&
IntUnmapDesktopView(IN PDESKTOP DesktopObject)
{
PW32THREADINFO ti;
- PW32HEAP_USER_MAPPING HeapMapping, *PrevLink = &PsGetCurrentProcessWin32Process()->HeapMappings.Next;
+ PW32PROCESS CurrentWin32Process;
+ PW32HEAP_USER_MAPPING HeapMapping, *PrevLink;
NTSTATUS Status = STATUS_SUCCESS;
TRACE("DO %p\n");
+ CurrentWin32Process = PsGetCurrentProcessWin32Process();
+ PrevLink = &CurrentWin32Process->HeapMappings.Next;
+
/* unmap if we're the last thread using the desktop */
HeapMapping = *PrevLink;
while (HeapMapping != NULL)
IntMapDesktopView(IN PDESKTOP DesktopObject)
{
PW32THREADINFO ti;
- PW32HEAP_USER_MAPPING HeapMapping, *PrevLink = &PsGetCurrentProcessWin32Process()->HeapMappings.Next;
+ PW32PROCESS CurrentWin32Process;
+ PW32HEAP_USER_MAPPING HeapMapping, *PrevLink;
PVOID UserBase = NULL;
SIZE_T ViewSize = 0;
LARGE_INTEGER Offset;
NTSTATUS Status;
+ CurrentWin32Process = PsGetCurrentProcessWin32Process();
+ PrevLink = &CurrentWin32Process->HeapMappings.Next;
+
/* find out if another thread already mapped the desktop heap */
HeapMapping = *PrevLink;
while (HeapMapping != NULL)
IntCreateMenu(PHANDLE Handle, BOOL IsMenuBar)
{
PMENU_OBJECT Menu;
+ PW32PROCESS CurrentWin32Process;
Menu = (PMENU_OBJECT)UserCreateObject(
gHandleTable, Handle,
Menu->MenuItemList = NULL;
/* Insert menu item into process menu handle list */
- InsertTailList(&PsGetCurrentProcessWin32Process()->MenuListHead, &Menu->ListEntry);
+ CurrentWin32Process = PsGetCurrentProcessWin32Process();
+ InsertTailList(&CurrentWin32Process->MenuListHead, &Menu->ListEntry);
return Menu;
}
PMENU_OBJECT FASTCALL
IntCloneMenu(PMENU_OBJECT Source)
{
+ PW32PROCESS CurrentWin32Process;
HANDLE hMenu;
PMENU_OBJECT Menu;
Menu->MenuItemList = NULL;
/* Insert menu item into process menu handle list */
- InsertTailList(&PsGetCurrentProcessWin32Process()->MenuListHead, &Menu->ListEntry);
+ CurrentWin32Process = PsGetCurrentProcessWin32Process();
+ InsertTailList(&CurrentWin32Process->MenuListHead, &Menu->ListEntry);
IntCloneMenuItems(Menu, Source);
static __inline PVOID
UserHeapAddressToUser(PVOID lpMem)
{
+ PW32PROCESS W32Process = PsGetCurrentProcessWin32Process();
return (PVOID)(((ULONG_PTR)lpMem - (ULONG_PTR)GlobalUserHeap) +
- (ULONG_PTR)PsGetCurrentProcessWin32Process()->HeapMappings.UserMapping);
+ (ULONG_PTR)W32Process->HeapMappings.UserMapping);
}
#endif /* __W32K_H */