[CSRSRV]
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Mon, 28 Apr 2014 23:09:09 +0000 (23:09 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Mon, 28 Apr 2014 23:09:09 +0000 (23:09 +0000)
When the CsrProcessCreateNewGroup (~= CREATE_NEW_PROCESS_GROUP) flag is set, it means that we are creating a new process group leader, and not the reverse :P

svn path=/branches/ntvdm/; revision=63041

subsystems/win32/csrsrv/procsup.c

index d682c37..451f269 100644 (file)
@@ -605,15 +605,18 @@ CsrCreateProcess(IN HANDLE hProcess,
     }
 
     /* Check if CreateProcess got CREATE_NEW_PROCESS_GROUP */
-    if ((Flags & CsrProcessCreateNewGroup) == 0)
+    if (Flags & CsrProcessCreateNewGroup)
     {
-        /* Create new data */
+        /*
+         * We create the process group leader of a new process group, therefore
+         * its process group ID and sequence number are its own ones.
+         */
         CsrProcess->ProcessGroupId = HandleToUlong(ClientId->UniqueProcess);
         CsrProcess->ProcessGroupSequence = CsrProcess->SequenceNumber;
     }
     else
     {
-        /* Copy it from the current process */
+        /* Inherit the process group ID and sequence number from the current process */
         CsrProcess->ProcessGroupId = CurrentProcess->ProcessGroupId;
         CsrProcess->ProcessGroupSequence = CurrentProcess->ProcessGroupSequence;
     }