private void SvcCancelSynchronization(AThreadState ThreadState) { int ThreadHandle = (int)ThreadState.X0; KThread Thread = Process.HandleTable.GetData <KThread>(ThreadHandle); if (Thread == null) { Device.Log.PrintWarning(LogClass.KernelSvc, $"Invalid thread handle 0x{ThreadHandle:x8}!"); ThreadState.X0 = MakeError(ErrorModule.Kernel, KernelErr.InvalidHandle); return; } Thread.CancelSynchronization(); ThreadState.X0 = 0; }
private void SvcCancelSynchronization(CpuThreadState threadState) { int threadHandle = (int)threadState.X0; Logger.PrintDebug(LogClass.KernelSvc, "ThreadHandle = 0x" + threadHandle.ToString("x8")); KThread thread = _process.HandleTable.GetKThread(threadHandle); if (thread == null) { Logger.PrintWarning(LogClass.KernelSvc, $"Invalid thread handle 0x{threadHandle:x8}!"); threadState.X0 = MakeError(ErrorModule.Kernel, KernelErr.InvalidHandle); return; } thread.CancelSynchronization(); threadState.X0 = 0; }