branch update for HEAD-2003021201
[reactos.git] / ntoskrnl / ps / process.c
index 751e534..e7ecc10 100644 (file)
@@ -215,7 +215,15 @@ PsInitProcessManagment(VOID)
    PsProcessType->MaxObjects = ULONG_MAX;
    PsProcessType->MaxHandles = ULONG_MAX;
    PsProcessType->PagedPoolCharge = 0;
-   PsProcessType->NonpagedPoolCharge = sizeof(EPROCESS);
+   PsProcessType->NonpagedPoolCharge = sizeof(EPROCESS)
+#ifdef LIBCAPTIVE
+        /* Need to present 0-terminated string "System"
+         * from KPROCESS up to PAGE_SIZE offset
+         * for ext2fsd.sys V0.10A debug.c/Ext2GetProcessNameOffset()
+         */
+        +strlen("System")+1/* 0-terminator */;
+#endif /* LIBCAPTIVE */
+        ;
    PsProcessType->Mapping = &PiProcessMapping;
    PsProcessType->Dump = NULL;
    PsProcessType->Open = NULL;
@@ -250,6 +258,14 @@ PsInitProcessManagment(VOID)
        return;
      }
    
+#ifdef LIBCAPTIVE
+   /* Need to present 0-terminated string "System"
+    * from KPROCESS up to PAGE_SIZE offset
+    * for ext2fsd.sys V0.10A debug.c/Ext2GetProcessNameOffset()
+    */
+   strcpy(((char *)PsInitialSystemProcess) +strlen("System")+1/* 0-terminator */,"System");
+#endif /* LIBCAPTIVE */
+
    /* System threads may run on any processor. */
    PsInitialSystemProcess->Pcb.Affinity = 0xFFFFFFFF;
    PsInitialSystemProcess->Pcb.BasePriority = PROCESS_PRIO_NORMAL;
@@ -317,12 +333,12 @@ PiDeleteProcess(PVOID ObjectBody)
    KeReleaseSpinLock(&PsProcessListLock, oldIrql);
 
    /* KDB hook */
-   KDB_DELETEPROCESS_HOOK(Process->Peb);
+   KDB_DELETEPROCESS_HOOK(Process);
 
    ObDereferenceObject(Process->Token);
+   ObDeleteHandleTable(Process);
 
    (VOID)MmReleaseMmInfo(Process);
-   ObDeleteHandleTable(Process);
 }
 
 
@@ -405,14 +421,14 @@ PsGetCurrentProcess(VOID)
 #endif /* LIBCAPTIVE */
 }
 
-#ifndef LIBCAPTIVE
-
 PEPROCESS STDCALL
 IoGetCurrentProcess(VOID)
 {
   return(PsGetCurrentProcess());
 }
 
+#ifndef LIBCAPTIVE
+
 NTSTATUS STDCALL
 PsCreateSystemProcess(PHANDLE ProcessHandle,
                      ACCESS_MASK DesiredAccess,
@@ -720,7 +736,7 @@ NtCreateProcess(OUT PHANDLE ProcessHandle,
        
        Message.Header.MessageSize = sizeof(LPC_DBG_MESSAGE);
        Message.Header.DataSize = sizeof(LPC_DBG_MESSAGE) -
-         sizeof(LPC_MESSAGE_HEADER);
+         sizeof(LPC_MESSAGE);
        Message.Type = DBG_EVENT_CREATE_PROCESS;
        Message.Data.CreateProcess.FileHandle = FileHandle;
        Message.Data.CreateProcess.Base = ImageBase;