update for HEAD-2003021201
[reactos.git] / lib / kernel32 / process / proc.c
index a243ce4..71a3926 100644 (file)
 
 /* INCLUDES ****************************************************************/
 
-#include <ddk/ntddk.h>
-#include <ntdll/rtl.h>
-#include <windows.h>
-#include <kernel32/proc.h>
-#include <kernel32/thread.h>
-#include <kernel32/error.h>
-#include <wchar.h>
-#include <string.h>
-#include <napi/i386/segment.h>
-#include <napi/teb.h>
-#include <ntdll/csr.h>
-#include <ntdll/ldr.h>
+#include <k32.h>
 
 
 #define NDEBUG
@@ -36,13 +25,13 @@ WaitForInputIdleType  lpfnGlobalRegisterWaitForInputIdle;
 LPSTARTUPINFO lpLocalStartupInfo = NULL;
 
 VOID STDCALL
-RegisterWaitForInputIdle (WaitForInputIdleType lpfnRegisterWaitForInputIdle);
+RegisterWaitForInputIdle(WaitForInputIdleType lpfnRegisterWaitForInputIdle);
 
+WINBOOL STDCALL
+GetProcessId (HANDLE hProcess, LPDWORD lpProcessId);
 
-/* FUNCTIONS ****************************************************************/
 
-WINBOOL STDCALL
-GetProcessId (HANDLE   hProcess, LPDWORD       lpProcessId);
+/* FUNCTIONS ****************************************************************/
 
 WINBOOL STDCALL
 GetProcessAffinityMask(HANDLE hProcess,
@@ -65,6 +54,14 @@ GetProcessAffinityMask(HANDLE hProcess,
 }
 
 
+BOOL STDCALL
+SetProcessAffinityMask(HANDLE hProcess,
+                      DWORD dwProcessAffinityMask)
+{
+  return(FALSE);
+}
+
+
 WINBOOL STDCALL
 GetProcessShutdownParameters(LPDWORD lpdwLevel,
                             LPDWORD lpdwFlags)
@@ -122,8 +119,24 @@ GetProcessWorkingSetSize(HANDLE hProcess,
                         LPDWORD lpMinimumWorkingSetSize,
                         LPDWORD lpMaximumWorkingSetSize)
 {
-  SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-  return(FALSE);
+  QUOTA_LIMITS QuotaLimits;
+  NTSTATUS Status;
+
+  Status = NtQueryInformationProcess(hProcess,
+                                    ProcessQuotaLimits,
+                                    &QuotaLimits,
+                                    sizeof(QUOTA_LIMITS),
+                                    NULL);
+  if (!NT_SUCCESS(Status))
+    {
+      SetLastErrorByStatus(Status);
+      return(FALSE);
+    }
+
+  *lpMinimumWorkingSetSize = (DWORD)QuotaLimits.MinimumWorkingSetSize;
+  *lpMaximumWorkingSetSize = (DWORD)QuotaLimits.MaximumWorkingSetSize;
+
+  return(TRUE);
 }
 
 
@@ -158,7 +171,7 @@ GetProcessTimes(HANDLE hProcess,
       return(FALSE);
     }
 
-  lpCreationTime->dwLowDateTime        = Kut.CreateTime.u.LowPart;
+  lpCreationTime->dwLowDateTime = Kut.CreateTime.u.LowPart;
   lpCreationTime->dwHighDateTime = Kut.CreateTime.u.HighPart;
 
   lpExitTime->dwLowDateTime = Kut.ExitTime.u.LowPart;
@@ -224,22 +237,24 @@ WINBOOL STDCALL
 GetProcessId(HANDLE hProcess,
             LPDWORD lpProcessId)
 {
-   NTSTATUS errCode;
-   PROCESS_BASIC_INFORMATION ProcessBasic;
-   ULONG BytesWritten;
-
-   errCode = NtQueryInformationProcess(hProcess,
-                                      ProcessBasicInformation,
-                                      &ProcessBasic,
-                                      sizeof(PROCESS_BASIC_INFORMATION),
-                                      &BytesWritten);
-   if (!NT_SUCCESS(errCode))
-     {
-       SetLastErrorByStatus (errCode);
-       return FALSE;
-     }
-   memcpy( lpProcessId ,&ProcessBasic.UniqueProcessId,sizeof(DWORD));
-   return TRUE;
+  PROCESS_BASIC_INFORMATION ProcessBasic;
+  ULONG BytesWritten;
+  NTSTATUS Status;
+
+  Status = NtQueryInformationProcess(hProcess,
+                                    ProcessBasicInformation,
+                                    &ProcessBasic,
+                                    sizeof(PROCESS_BASIC_INFORMATION),
+                                    &BytesWritten);
+  if (!NT_SUCCESS(Status))
+    {
+      SetLastErrorByStatus(Status);
+      return(FALSE);
+    }
+
+  memcpy(lpProcessId, &ProcessBasic.UniqueProcessId, sizeof(DWORD));
+
+  return(TRUE);
 }
 
 
@@ -701,6 +716,4 @@ GetProcessVersion (DWORD    ProcessId)
   return (Version);
 }
 
-
-
 /* EOF */