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=…
==============================================================================
--- 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=56…
==============================================================================
--- 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 */