Pass CreateProcess() SECURITY_ATTRIBUTES through to PROCESS_Create().

diff --git a/loader/dos/module.c b/loader/dos/module.c
index 00e4655..9a8b301 100644
--- a/loader/dos/module.c
+++ b/loader/dos/module.c
@@ -415,8 +415,9 @@
  return TRUE;
 }
 
-BOOL MZ_CreateProcess( HFILE hFile, OFSTRUCT *ofs, LPCSTR cmdline, 
-                       LPCSTR env, BOOL inherit, LPSTARTUPINFOA startup, 
+BOOL MZ_CreateProcess( HFILE hFile, OFSTRUCT *ofs, LPCSTR cmdline, LPCSTR env, 
+                       LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
+                       BOOL inherit, LPSTARTUPINFOA startup, 
                        LPPROCESS_INFORMATION info )
 {
  LPDOSTASK lpDosTask = NULL; /* keep gcc from complaining */
@@ -463,7 +464,8 @@
    SetLastError(ERROR_GEN_FAILURE);
    return FALSE;
   }
-  if (!PROCESS_Create( pModule, cmdline, env, 0, 0, inherit, startup, info ))
+  if (!PROCESS_Create( pModule, cmdline, env, 0, 0, 
+                       psa, tsa, inherit, startup, info ))
    return FALSE;
  }
  return TRUE;
@@ -491,8 +493,9 @@
 
 #else /* !MZ_SUPPORTED */
 
-BOOL MZ_CreateProcess( HFILE hFile, OFSTRUCT *ofs, LPCSTR cmdline, 
-                       LPCSTR env, BOOL inherit, LPSTARTUPINFOA startup, 
+BOOL MZ_CreateProcess( HFILE hFile, OFSTRUCT *ofs, LPCSTR cmdline, LPCSTR env, 
+                       LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
+                       BOOL inherit, LPSTARTUPINFOA startup, 
                        LPPROCESS_INFORMATION info )
 {
  WARN(module,"DOS executables not supported on this architecture\n");
diff --git a/loader/module.c b/loader/module.c
index 666d3c0..c9137b8 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -847,10 +847,6 @@
 
     /* Warn if unsupported features are used */
 
-    if (lpProcessAttributes)
-        FIXME(module, "(%s,...): lpProcessAttributes ignored\n", name);
-    if (lpThreadAttributes)
-        FIXME(module, "(%s,...): lpThreadAttributes ignored\n", name);
     if (dwCreationFlags & DEBUG_PROCESS)
         FIXME(module, "(%s,...): DEBUG_PROCESS ignored\n", name);
     if (dwCreationFlags & DEBUG_ONLY_THIS_PROCESS)
@@ -922,6 +918,7 @@
 
     lstrcpynA( ofs.szPathName, name, sizeof( ofs.szPathName ) );
     retv = NE_CreateProcess( HFILE_ERROR, &ofs, cmdline, lpEnvironment, 
+                             lpProcessAttributes, lpThreadAttributes,
                              bInheritHandles, lpStartupInfo, lpProcessInfo );
 
     /* Load file and create process */
@@ -956,16 +953,19 @@
         {
         case SCS_32BIT_BINARY:
             retv = PE_CreateProcess( hFile, &ofs, cmdline, lpEnvironment, 
+                                     lpProcessAttributes, lpThreadAttributes,
                                      bInheritHandles, lpStartupInfo, lpProcessInfo );
             break;
     
         case SCS_DOS_BINARY:
             retv = MZ_CreateProcess( hFile, &ofs, cmdline, lpEnvironment, 
+                                     lpProcessAttributes, lpThreadAttributes,
                                      bInheritHandles, lpStartupInfo, lpProcessInfo );
             break;
 
         case SCS_WOW_BINARY:
             retv = NE_CreateProcess( hFile, &ofs, cmdline, lpEnvironment, 
+                                     lpProcessAttributes, lpThreadAttributes,
                                      bInheritHandles, lpStartupInfo, lpProcessInfo );
             break;
 
diff --git a/loader/ne/module.c b/loader/ne/module.c
index 59edc9e..bf60766 100644
--- a/loader/ne/module.c
+++ b/loader/ne/module.c
@@ -914,7 +914,8 @@
     }
 
     pdb = PROCESS_Create( pModule, new_cmd_line, env,
-                          hInstance, hPrevInstance, TRUE, &startup, &info );
+                          hInstance, hPrevInstance, 
+                          NULL, NULL, TRUE, &startup, &info );
 
     CloseHandle( info.hThread );
     CloseHandle( info.hProcess );
@@ -932,8 +933,9 @@
 /**********************************************************************
  *          NE_CreateProcess
  */
-BOOL NE_CreateProcess( HFILE hFile, OFSTRUCT *ofs, LPCSTR cmd_line,
-                       LPCSTR env, BOOL inherit, LPSTARTUPINFOA startup,
+BOOL NE_CreateProcess( HFILE hFile, OFSTRUCT *ofs, LPCSTR cmd_line, LPCSTR env, 
+                       LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
+                       BOOL inherit, LPSTARTUPINFOA startup,
                        LPPROCESS_INFORMATION info )
 {
     HINSTANCE16 hInstance, hPrevInstance = 0;
@@ -1004,7 +1006,8 @@
     pModule->flags |= NE_FFLAGS_GUI;  /* FIXME: is this necessary? */
 
     if ( !PROCESS_Create( pModule, cmd_line, env,
-                          hInstance, hPrevInstance, inherit, startup, info ) )
+                          hInstance, hPrevInstance, 
+                          psa, tsa, inherit, startup, info ) )
         return FALSE;
 
     return TRUE;
diff --git a/loader/pe_image.c b/loader/pe_image.c
index eb86f11..f05301d 100644
--- a/loader/pe_image.c
+++ b/loader/pe_image.c
@@ -879,8 +879,9 @@
  * FIXME: this function should use PE_LoadLibraryExA, but currently can't
  * due to the PROCESS_Create stuff.
  */
-BOOL PE_CreateProcess( HFILE hFile, OFSTRUCT *ofs, LPCSTR cmd_line,
-                       LPCSTR env, BOOL inherit, LPSTARTUPINFOA startup,
+BOOL PE_CreateProcess( HFILE hFile, OFSTRUCT *ofs, LPCSTR cmd_line, LPCSTR env, 
+                       LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
+                       BOOL inherit, LPSTARTUPINFOA startup,
                        LPPROCESS_INFORMATION info )
 {
     LPCSTR modName = NULL;
@@ -914,7 +915,7 @@
 
     /* Create new process */
     if ( !PROCESS_Create( pModule, cmd_line, env,
-                          0, 0, inherit, startup, info ) )
+                          0, 0, psa, tsa, inherit, startup, info ) )
         return FALSE;
 
     /* Note: PE_CreateModule and the remaining process initialization will