Fix boot. The fact this fixes it should worry about the state of CSRSS...

svn path=/trunk/; revision=54990
This commit is contained in:
Alex Ionescu 2012-01-17 17:42:47 +00:00
parent 3ea87d4d2b
commit 3735acec50
2 changed files with 7 additions and 6 deletions

View file

@ -801,7 +801,6 @@ BasePushProcessParameters(IN ULONG ParameterFlags,
SIZE_T Size; SIZE_T Size;
BOOLEAN HavePebLock = FALSE, Result; BOOLEAN HavePebLock = FALSE, Result;
PPEB Peb = NtCurrentPeb(); PPEB Peb = NtCurrentPeb();
DPRINT("BasePushProcessParameters\n");
/* Get the full path name */ /* Get the full path name */
Size = GetFullPathNameW(ApplicationPathName, Size = GetFullPathNameW(ApplicationPathName,
@ -1050,7 +1049,7 @@ BasePushProcessParameters(IN ULONG ParameterFlags,
RTL_USER_PROCESS_PARAMETERS_PROFILE_KERNEL : 0; RTL_USER_PROCESS_PARAMETERS_PROFILE_KERNEL : 0;
ProcessParameters->Flags |= (CreationFlags & PROFILE_SERVER) ? ProcessParameters->Flags |= (CreationFlags & PROFILE_SERVER) ?
RTL_USER_PROCESS_PARAMETERS_PROFILE_SERVER : 0; RTL_USER_PROCESS_PARAMETERS_PROFILE_SERVER : 0;
ProcessParameters->Flags |= (NtCurrentPeb()->ProcessParameters->Flags & ProcessParameters->Flags |= (Peb->ProcessParameters->Flags &
RTL_USER_PROCESS_PARAMETERS_DISABLE_HEAP_CHECKS); RTL_USER_PROCESS_PARAMETERS_DISABLE_HEAP_CHECKS);
/* Write the Parameter Block */ /* Write the Parameter Block */
@ -1068,7 +1067,7 @@ BasePushProcessParameters(IN ULONG ParameterFlags,
sizeof(PVOID), sizeof(PVOID),
NULL); NULL);
if (!NT_SUCCESS(Status)) goto FailPath; if (!NT_SUCCESS(Status)) goto FailPath;
/* Check if there's any app compat data to write */ /* Check if there's any app compat data to write */
RemoteAppCompatData = NULL; RemoteAppCompatData = NULL;
if (AppCompatData) if (AppCompatData)
@ -1082,7 +1081,7 @@ BasePushProcessParameters(IN ULONG ParameterFlags,
MEM_COMMIT, MEM_COMMIT,
PAGE_READWRITE); PAGE_READWRITE);
if (!NT_SUCCESS(Status)) goto FailPath; if (!NT_SUCCESS(Status)) goto FailPath;
/* Write the application compatibility data */ /* Write the application compatibility data */
Status = NtWriteVirtualMemory(ProcessHandle, Status = NtWriteVirtualMemory(ProcessHandle,
RemoteAppCompatData, RemoteAppCompatData,
@ -1091,7 +1090,7 @@ BasePushProcessParameters(IN ULONG ParameterFlags,
NULL); NULL);
if (!NT_SUCCESS(Status)) goto FailPath; if (!NT_SUCCESS(Status)) goto FailPath;
} }
/* Write the PEB Pointer to the app compat data (might be NULL) */ /* Write the PEB Pointer to the app compat data (might be NULL) */
Status = NtWriteVirtualMemory(ProcessHandle, Status = NtWriteVirtualMemory(ProcessHandle,
&RemotePeb->pShimData, &RemotePeb->pShimData,
@ -1109,7 +1108,7 @@ BasePushProcessParameters(IN ULONG ParameterFlags,
sizeof(ImageSubsystem), sizeof(ImageSubsystem),
NULL); NULL);
} }
/* Success path */ /* Success path */
Result = TRUE; Result = TRUE;

View file

@ -51,6 +51,7 @@ typedef struct _BASE_SXS_CREATEPROCESS_MSG
typedef struct typedef struct
{ {
#if 0
// //
// NT-type structure (BASE_CREATEPROCESS_MSG) // NT-type structure (BASE_CREATEPROCESS_MSG)
// //
@ -65,6 +66,7 @@ typedef struct
PVOID PebAddressNative; PVOID PebAddressNative;
ULONG PebAddressWow64; ULONG PebAddressWow64;
USHORT ProcessorArchitecture; USHORT ProcessorArchitecture;
#endif
// //
// ReactOS Data // ReactOS Data
// //