Why not use NtTerminateProcess() for non-native apps?
Am 10.01.2013 02:45, schrieb hbelusca@svn.reactos.org:
+/*
- Declare a target-dependent process termination procedure.
- */
+#ifndef_NTDDK_ /* User-Mode */
- #ifndef NTOS_MODE_USER /* Should be Win32 */
#ifndef _WIN32#error "Unsupported target."#else#define TerminateCurrentProcess(Status) TerminateProcess(GetCurrentProcess(), (Status))#endif- #else /* Native */
#ifndef _PSFUNCS_HNTSYSCALLAPINTSTATUSNTAPINtTerminateProcess(IN HANDLE ProcessHandle,IN NTSTATUS ExitStatus);#endif#ifndef NtCurrentProcess#define NtCurrentProcess() ((HANDLE)(LONG_PTR)-1)#endif#define TerminateCurrentProcess(Status) NtTerminateProcess(NtCurrentProcess(), (Status))- #endif
+#else /* Kernel-Mode */
- #include <bugcodes.h>
- #define TerminateCurrentProcess(Status) KeBugCheckEx(CRITICAL_SERVICE_FAILED, (Status), 0, 0, 0)
+#endif