Changed the indentation to a human readable format (no code change).

svn path=/trunk/; revision=14454
This commit is contained in:
Hartmut Birr 2005-04-02 19:33:08 +00:00
parent 8a17f1f08d
commit ff278d3830

View file

@ -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;