Author: tkreuzer Date: Wed Mar 28 18:46:30 2012 New Revision: 56263
URL: http://svn.reactos.org/svn/reactos?rev=56263&view=rev Log: [NDK/NTOSKRNK] - Finally make EPROCESS::Session PVOID, as it's supposed to be - add missing Wow64Process member
Modified: trunk/reactos/include/ndk/pstypes.h trunk/reactos/ntoskrnl/ps/query.c
Modified: trunk/reactos/include/ndk/pstypes.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/pstypes.h?rev=5... ============================================================================== --- trunk/reactos/include/ndk/pstypes.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/pstypes.h [iso-8859-1] Wed Mar 28 18:46:30 2012 @@ -1112,13 +1112,17 @@ HARDWARE_PTE PageDirectoryPte; ULONGLONG Filler; }; - ULONG Session; // FIXME: PVOID + PVOID Session; CHAR ImageFileName[16]; LIST_ENTRY JobLinks; PVOID LockedPagesList; LIST_ENTRY ThreadListHead; PVOID SecurityPort; +#ifdef _M_AMD64 + struct _WOW64_PROCESS *Wow64Process; +#else PVOID PaeTop; +#endif ULONG ActiveThreads; #if (NTDDI_VERSION >= NTDDI_LONGHORN) ULONG ImagePathHash;
Modified: trunk/reactos/ntoskrnl/ps/query.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/query.c?rev=562... ============================================================================== --- trunk/reactos/ntoskrnl/ps/query.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ps/query.c [iso-8859-1] Wed Mar 28 18:46:30 2012 @@ -880,10 +880,10 @@ Status = STATUS_INFO_LENGTH_MISMATCH; break; } - + /* Indicate success */ Status = STATUS_SUCCESS; - + /* Protect write in SEH */ _SEH2_TRY { @@ -958,14 +958,14 @@ { /* Get the WOW64 process structure */ #ifdef _WIN64 - Wow64 = Process->Wow64Process; + Wow64 = (ULONG_PTR)Process->Wow64Process; #else Wow64 = 0; #endif /* Release the lock */ ExReleaseRundownProtection(&Process->RundownProtect); } - + /* Protect write with SEH */ _SEH2_TRY { @@ -982,9 +982,9 @@ /* Dereference the process */ ObDereferenceObject(Process); break; - + case ProcessExecuteFlags: - + /* Set return length */ Length = sizeof(ULONG); if (ProcessInformationLength != Length) @@ -1322,7 +1322,7 @@ if (!NT_SUCCESS(Status)) break;
/* Write the session ID in the EPROCESS */ - Process->Session = SessionInfo.SessionId; + Process->Session = UlongToPtr(SessionInfo.SessionId); // HACK!!!
/* Check if the process also has a PEB */ if (Process->Peb) @@ -1811,11 +1811,11 @@ KeSetAutoAlignmentProcess(&Process->Pcb, FALSE); Status = STATUS_SUCCESS; break; - + case ProcessUserModeIOPL:
/* Only TCB can do this */ - if (!SeSinglePrivilegeCheck(SeTcbPrivilege, PreviousMode)) + if (!SeSinglePrivilegeCheck(SeTcbPrivilege, PreviousMode)) { /* Fail */ DPRINT1("Need TCB to set IOPL\n"); @@ -1863,7 +1863,7 @@ /* Call Mm for the update */ Status = MmSetExecuteOptions(NoExecute); break; - + /* We currently don't implement any of these */ case ProcessLdtInformation: case ProcessLdtSize: @@ -2319,7 +2319,7 @@
/* All done */ break; - + case ThreadBreakOnTermination:
/* Check buffer length */