diff --git a/src/core/kernel/common/ps.h b/src/core/kernel/common/ps.h index a9da41d00..e5ec71aba 100644 --- a/src/core/kernel/common/ps.h +++ b/src/core/kernel/common/ps.h @@ -25,7 +25,7 @@ namespace xbox XBSYSAPI EXPORTNUM(254) ntstatus_xt NTAPI PsCreateSystemThread ( OUT PHANDLE ThreadHandle, - OUT PHANDLE ThreadId OPTIONAL, + OUT PDWORD ThreadId OPTIONAL, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext, IN boolean_xt DebuggerThread @@ -40,7 +40,7 @@ XBSYSAPI EXPORTNUM(255) ntstatus_xt NTAPI PsCreateSystemThreadEx IN ulong_xt ThreadExtensionSize, IN ulong_xt KernelStackSize, IN ulong_xt TlsDataSize, - OUT PHANDLE ThreadId OPTIONAL, + OUT PDWORD ThreadId OPTIONAL, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext, IN boolean_xt CreateSuspended, diff --git a/src/core/kernel/exports/EmuKrnlPs.cpp b/src/core/kernel/exports/EmuKrnlPs.cpp index e3eb2be71..9a62cdc16 100644 --- a/src/core/kernel/exports/EmuKrnlPs.cpp +++ b/src/core/kernel/exports/EmuKrnlPs.cpp @@ -166,7 +166,7 @@ void PspSystemThreadStartup XBSYSAPI EXPORTNUM(254) xbox::ntstatus_xt NTAPI xbox::PsCreateSystemThread ( OUT PHANDLE ThreadHandle, - OUT PHANDLE ThreadId OPTIONAL, + OUT PDWORD ThreadId OPTIONAL, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext, IN boolean_xt DebuggerThread @@ -210,7 +210,7 @@ XBSYSAPI EXPORTNUM(255) xbox::ntstatus_xt NTAPI xbox::PsCreateSystemThreadEx IN ulong_xt ThreadExtensionSize, IN ulong_xt KernelStackSize, IN ulong_xt TlsDataSize, - OUT PHANDLE ThreadId OPTIONAL, + OUT PDWORD ThreadId OPTIONAL, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext, IN boolean_xt CreateSuspended, @@ -284,9 +284,9 @@ XBSYSAPI EXPORTNUM(255) xbox::ntstatus_xt NTAPI xbox::PsCreateSystemThreadEx } }*/ - *ThreadHandle = (HANDLE)_beginthreadex(NULL, KernelStackSize, PCSTProxy, iPCSTProxyParam, NULL, (unsigned int*)&dwThreadId); + *ThreadHandle = reinterpret_cast(_beginthreadex(NULL, KernelStackSize, PCSTProxy, iPCSTProxyParam, NULL, reinterpret_cast(&dwThreadId))); if (ThreadId != NULL) - *ThreadId = (xbox::HANDLE)dwThreadId; + *ThreadId = dwThreadId; // Note : DO NOT use iPCSTProxyParam anymore, since ownership is transferred to the proxy (which frees it too)