mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 23:13:04 +00:00
Changed the indentation to a human readable format (no code change).
svn path=/trunk/; revision=14454
This commit is contained in:
parent
8a17f1f08d
commit
ff278d3830
1 changed files with 502 additions and 517 deletions
|
@ -32,13 +32,10 @@ typedef NTSTATUS STDCALL (K32_MBSTR_TO_WCSTR)
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSTATUS STDCALL K32MbStrToWcStr
|
NTSTATUS STDCALL K32MbStrToWcStr(IN K32_MBSTR_TO_WCSTR * True,
|
||||||
(
|
|
||||||
IN K32_MBSTR_TO_WCSTR * True,
|
|
||||||
UNICODE_STRING * DestStr,
|
UNICODE_STRING * DestStr,
|
||||||
ANSI_STRING * SourceStr,
|
ANSI_STRING * SourceStr,
|
||||||
BOOLEAN Allocate
|
BOOLEAN Allocate)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
if(SourceStr->Buffer == NULL)
|
if(SourceStr->Buffer == NULL)
|
||||||
{
|
{
|
||||||
|
@ -50,11 +47,8 @@ NTSTATUS STDCALL K32MbStrToWcStr
|
||||||
return True(DestStr, SourceStr, Allocate);
|
return True(DestStr, SourceStr, Allocate);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID STDCALL RtlRosR32AttribsToNativeAttribs
|
VOID STDCALL RtlRosR32AttribsToNativeAttribs(OUT OBJECT_ATTRIBUTES * NativeAttribs,
|
||||||
(
|
IN SECURITY_ATTRIBUTES * Ros32Attribs OPTIONAL)
|
||||||
OUT OBJECT_ATTRIBUTES * NativeAttribs,
|
|
||||||
IN SECURITY_ATTRIBUTES * Ros32Attribs OPTIONAL
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
NativeAttribs->Length = sizeof(*NativeAttribs);
|
NativeAttribs->Length = sizeof(*NativeAttribs);
|
||||||
NativeAttribs->ObjectName = NULL;
|
NativeAttribs->ObjectName = NULL;
|
||||||
|
@ -68,20 +62,21 @@ VOID STDCALL RtlRosR32AttribsToNativeAttribs
|
||||||
NativeAttribs->SecurityDescriptor = Ros32Attribs->lpSecurityDescriptor;
|
NativeAttribs->SecurityDescriptor = Ros32Attribs->lpSecurityDescriptor;
|
||||||
|
|
||||||
if(Ros32Attribs->bInheritHandle)
|
if(Ros32Attribs->bInheritHandle)
|
||||||
|
{
|
||||||
NativeAttribs->Attributes |= OBJ_INHERIT;
|
NativeAttribs->Attributes |= OBJ_INHERIT;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
NativeAttribs->SecurityDescriptor = NULL;
|
NativeAttribs->SecurityDescriptor = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID STDCALL RtlRosR32AttribsToNativeAttribsNamed
|
VOID STDCALL RtlRosR32AttribsToNativeAttribsNamed(OUT OBJECT_ATTRIBUTES * NativeAttribs,
|
||||||
(
|
|
||||||
OUT OBJECT_ATTRIBUTES * NativeAttribs,
|
|
||||||
IN SECURITY_ATTRIBUTES * Ros32Attribs OPTIONAL,
|
IN SECURITY_ATTRIBUTES * Ros32Attribs OPTIONAL,
|
||||||
OUT UNICODE_STRING * NativeName OPTIONAL,
|
OUT UNICODE_STRING * NativeName OPTIONAL,
|
||||||
IN WCHAR * Ros32Name OPTIONAL,
|
IN WCHAR * Ros32Name OPTIONAL,
|
||||||
IN HANDLE Ros32NameRoot OPTIONAL
|
IN HANDLE Ros32NameRoot OPTIONAL)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
if(!NativeAttribs) return;
|
if(!NativeAttribs) return;
|
||||||
|
|
||||||
|
@ -144,12 +139,9 @@ BOOL STDCALL CreateProcessA(LPCSTR lpApplicationName,
|
||||||
BOOL bRetVal;
|
BOOL bRetVal;
|
||||||
STARTUPINFOW wsiStartupInfo;
|
STARTUPINFOW wsiStartupInfo;
|
||||||
|
|
||||||
NTSTATUS STDCALL_FUNC (*pTrue)
|
NTSTATUS STDCALL_FUNC (*pTrue)(UNICODE_STRING *,
|
||||||
(
|
|
||||||
UNICODE_STRING *,
|
|
||||||
ANSI_STRING *,
|
ANSI_STRING *,
|
||||||
BOOLEAN
|
BOOLEAN);
|
||||||
);
|
|
||||||
|
|
||||||
ULONG STDCALL_FUNC (*pRtlMbStringToUnicodeSize)(ANSI_STRING *);
|
ULONG STDCALL_FUNC (*pRtlMbStringToUnicodeSize)(ANSI_STRING *);
|
||||||
|
|
||||||
|
@ -318,9 +310,13 @@ _except_handler(EXCEPTION_RECORD *ExceptionRecord,
|
||||||
|
|
||||||
/* translate EXCEPTION_XXX defines into EXCEPTION_DISPOSITION enum values */
|
/* translate EXCEPTION_XXX defines into EXCEPTION_DISPOSITION enum values */
|
||||||
if (ExceptionDisposition == EXCEPTION_CONTINUE_EXECUTION)
|
if (ExceptionDisposition == EXCEPTION_CONTINUE_EXECUTION)
|
||||||
|
{
|
||||||
return ExceptionContinueExecution;
|
return ExceptionContinueExecution;
|
||||||
|
}
|
||||||
else if (ExceptionDisposition == EXCEPTION_CONTINUE_SEARCH)
|
else if (ExceptionDisposition == EXCEPTION_CONTINUE_SEARCH)
|
||||||
|
{
|
||||||
return ExceptionContinueSearch;
|
return ExceptionContinueSearch;
|
||||||
|
}
|
||||||
|
|
||||||
return -1; /* unknown return from UnhandledExceptionFilter */
|
return -1; /* unknown return from UnhandledExceptionFilter */
|
||||||
}
|
}
|
||||||
|
@ -343,15 +339,12 @@ BaseProcessStart(LPTHREAD_START_ROUTINE lpStartAddress,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
HANDLE STDCALL KlCreateFirstThread
|
HANDLE STDCALL KlCreateFirstThread(HANDLE ProcessHandle,
|
||||||
(
|
|
||||||
HANDLE ProcessHandle,
|
|
||||||
LPSECURITY_ATTRIBUTES lpThreadAttributes,
|
LPSECURITY_ATTRIBUTES lpThreadAttributes,
|
||||||
PSECTION_IMAGE_INFORMATION Sii,
|
PSECTION_IMAGE_INFORMATION Sii,
|
||||||
LPTHREAD_START_ROUTINE lpStartAddress,
|
LPTHREAD_START_ROUTINE lpStartAddress,
|
||||||
DWORD dwCreationFlags,
|
DWORD dwCreationFlags,
|
||||||
LPDWORD lpThreadId
|
LPDWORD lpThreadId)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES oaThreadAttribs;
|
OBJECT_ATTRIBUTES oaThreadAttribs;
|
||||||
CLIENT_ID cidClientId;
|
CLIENT_ID cidClientId;
|
||||||
|
@ -364,14 +357,16 @@ HANDLE STDCALL KlCreateFirstThread
|
||||||
|
|
||||||
/* native image */
|
/* native image */
|
||||||
if(Sii->Subsystem != IMAGE_SUBSYSTEM_NATIVE)
|
if(Sii->Subsystem != IMAGE_SUBSYSTEM_NATIVE)
|
||||||
|
{
|
||||||
pTrueStartAddress = (PVOID)BaseProcessStart;
|
pTrueStartAddress = (PVOID)BaseProcessStart;
|
||||||
|
}
|
||||||
/* Win32 image */
|
/* Win32 image */
|
||||||
else
|
else
|
||||||
|
{
|
||||||
pTrueStartAddress = (PVOID)RtlBaseProcessStartRoutine;
|
pTrueStartAddress = (PVOID)RtlBaseProcessStartRoutine;
|
||||||
|
}
|
||||||
|
|
||||||
DPRINT
|
DPRINT("RtlRosCreateUserThreadVa\n"
|
||||||
(
|
|
||||||
"RtlRosCreateUserThreadVa\n"
|
|
||||||
"(\n"
|
"(\n"
|
||||||
" ProcessHandle %p,\n"
|
" ProcessHandle %p,\n"
|
||||||
" ObjectAttributes %p,\n"
|
" ObjectAttributes %p,\n"
|
||||||
|
@ -397,13 +392,10 @@ HANDLE STDCALL KlCreateFirstThread
|
||||||
&cidClientId,
|
&cidClientId,
|
||||||
2,
|
2,
|
||||||
lpStartAddress,
|
lpStartAddress,
|
||||||
PEB_BASE
|
PEB_BASE);
|
||||||
);
|
|
||||||
|
|
||||||
/* create the first thread */
|
/* create the first thread */
|
||||||
nErrCode = RtlRosCreateUserThreadVa
|
nErrCode = RtlRosCreateUserThreadVa(ProcessHandle,
|
||||||
(
|
|
||||||
ProcessHandle,
|
|
||||||
&oaThreadAttribs,
|
&oaThreadAttribs,
|
||||||
dwCreationFlags & CREATE_SUSPENDED,
|
dwCreationFlags & CREATE_SUSPENDED,
|
||||||
0,
|
0,
|
||||||
|
@ -414,9 +406,7 @@ HANDLE STDCALL KlCreateFirstThread
|
||||||
&cidClientId,
|
&cidClientId,
|
||||||
2,
|
2,
|
||||||
(ULONG_PTR)lpStartAddress,
|
(ULONG_PTR)lpStartAddress,
|
||||||
(ULONG_PTR)PEB_BASE
|
(ULONG_PTR)PEB_BASE);
|
||||||
);
|
|
||||||
|
|
||||||
/* failure */
|
/* failure */
|
||||||
if(!NT_SUCCESS(nErrCode))
|
if(!NT_SUCCESS(nErrCode))
|
||||||
{
|
{
|
||||||
|
@ -424,17 +414,14 @@ HANDLE STDCALL KlCreateFirstThread
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
DPRINT
|
DPRINT("StackReserve %p\n"
|
||||||
(
|
|
||||||
"StackReserve %p\n"
|
|
||||||
"StackCommit %p\n"
|
"StackCommit %p\n"
|
||||||
"ThreadHandle %p\n"
|
"ThreadHandle %p\n"
|
||||||
"ClientId.UniqueThread %p\n",
|
"ClientId.UniqueThread %p\n",
|
||||||
Sii->StackReserve,
|
Sii->StackReserve,
|
||||||
Sii->StackCommit,
|
Sii->StackCommit,
|
||||||
hThread,
|
hThread,
|
||||||
cidClientId.UniqueThread
|
cidClientId.UniqueThread);
|
||||||
);
|
|
||||||
|
|
||||||
/* success */
|
/* success */
|
||||||
if(lpThreadId) *lpThreadId = (DWORD)cidClientId.UniqueThread;
|
if(lpThreadId) *lpThreadId = (DWORD)cidClientId.UniqueThread;
|
||||||
|
@ -510,13 +497,10 @@ HANDLE KlMapFile(LPCWSTR lpApplicationName)
|
||||||
return(hSection);
|
return(hSection);
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS KlInitPeb
|
static NTSTATUS KlInitPeb(HANDLE ProcessHandle,
|
||||||
(
|
|
||||||
HANDLE ProcessHandle,
|
|
||||||
PRTL_USER_PROCESS_PARAMETERS Ppb,
|
PRTL_USER_PROCESS_PARAMETERS Ppb,
|
||||||
PVOID * ImageBaseAddress,
|
PVOID * ImageBaseAddress,
|
||||||
ULONG ImageSubSystem
|
ULONG ImageSubSystem)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PVOID PpbBase;
|
PVOID PpbBase;
|
||||||
|
@ -754,9 +738,7 @@ GetFileName(LPCWSTR CurDir, LPCWSTR AppName, LPWSTR CmdLine, LPWSTR Buffer,
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
BOOL STDCALL
|
BOOL STDCALL
|
||||||
CreateProcessW
|
CreateProcessW(LPCWSTR lpApplicationName,
|
||||||
(
|
|
||||||
LPCWSTR lpApplicationName,
|
|
||||||
LPWSTR lpCommandLine,
|
LPWSTR lpCommandLine,
|
||||||
LPSECURITY_ATTRIBUTES lpProcessAttributes,
|
LPSECURITY_ATTRIBUTES lpProcessAttributes,
|
||||||
LPSECURITY_ATTRIBUTES lpThreadAttributes,
|
LPSECURITY_ATTRIBUTES lpThreadAttributes,
|
||||||
|
@ -765,8 +747,7 @@ CreateProcessW
|
||||||
LPVOID lpEnvironment,
|
LPVOID lpEnvironment,
|
||||||
LPCWSTR lpCurrentDirectory,
|
LPCWSTR lpCurrentDirectory,
|
||||||
LPSTARTUPINFOW lpStartupInfo,
|
LPSTARTUPINFOW lpStartupInfo,
|
||||||
LPPROCESS_INFORMATION lpProcessInformation
|
LPPROCESS_INFORMATION lpProcessInformation)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
HANDLE hSection, hProcess, hThread;
|
HANDLE hSection, hProcess, hThread;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
@ -935,12 +916,12 @@ CreateProcessW
|
||||||
IO_STATUS_BLOCK Iosb;
|
IO_STATUS_BLOCK Iosb;
|
||||||
LARGE_INTEGER Offset;
|
LARGE_INTEGER Offset;
|
||||||
HANDLE hFile = NULL;
|
HANDLE hFile = NULL;
|
||||||
|
|
||||||
DPRINT("Inspecting Image Header for image type id\n");
|
DPRINT("Inspecting Image Header for image type id\n");
|
||||||
|
|
||||||
// Find the application name
|
// Find the application name
|
||||||
if (!RtlDosPathNameToNtPathName_U((LPWSTR)lpApplicationName,
|
if (!RtlDosPathNameToNtPathName_U((LPWSTR)lpApplicationName,
|
||||||
&ApplicationNameString, NULL, NULL)) {
|
&ApplicationNameString, NULL, NULL))
|
||||||
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
DPRINT("ApplicationName %S\n",ApplicationNameString.Buffer);
|
DPRINT("ApplicationName %S\n",ApplicationNameString.Buffer);
|
||||||
|
@ -961,7 +942,8 @@ CreateProcessW
|
||||||
|
|
||||||
RtlFreeUnicodeString(&ApplicationNameString);
|
RtlFreeUnicodeString(&ApplicationNameString);
|
||||||
|
|
||||||
if (!NT_SUCCESS(Status)) {
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
DPRINT("Failed to open file\n");
|
DPRINT("Failed to open file\n");
|
||||||
SetLastErrorByStatus(Status);
|
SetLastErrorByStatus(Status);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -979,19 +961,22 @@ CreateProcessW
|
||||||
&Offset,
|
&Offset,
|
||||||
0);
|
0);
|
||||||
|
|
||||||
if (!NT_SUCCESS(Status)) {
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
DPRINT("Failed to read from file\n");
|
DPRINT("Failed to read from file\n");
|
||||||
SetLastErrorByStatus(Status);
|
SetLastErrorByStatus(Status);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (Iosb.Information != sizeof(DosHeader)) {
|
if (Iosb.Information != sizeof(DosHeader))
|
||||||
|
{
|
||||||
DPRINT("Failed to read dos header from file\n");
|
DPRINT("Failed to read dos header from file\n");
|
||||||
SetLastErrorByStatus(STATUS_INVALID_IMAGE_FORMAT);
|
SetLastErrorByStatus(STATUS_INVALID_IMAGE_FORMAT);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check the DOS signature
|
// Check the DOS signature
|
||||||
if (DosHeader.e_magic != IMAGE_DOS_SIGNATURE) {
|
if (DosHeader.e_magic != IMAGE_DOS_SIGNATURE)
|
||||||
|
{
|
||||||
DPRINT("Failed dos magic check\n");
|
DPRINT("Failed dos magic check\n");
|
||||||
SetLastErrorByStatus(STATUS_INVALID_IMAGE_FORMAT);
|
SetLastErrorByStatus(STATUS_INVALID_IMAGE_FORMAT);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue