typedef LONG (NTAPI *NtSuspendProcess)(IN HANDLE ProcessHandle); typedef LONG (NTAPI *NtResumeProcess)(IN HANDLE ProcessHandle); /* ... */ void ProcessSuspend(DWORD PID) { HANDLE hProcess = OpenProcess(PROCESS_SUSPEND_RESUME, FALSE, PID); if(!hProcess){ printf("OpenProcess failed. ErrorCode:0x%08X\n", GetLastError()); return; } NtSuspendProcess _NtSuspendProcess = (NtSuspendProcess)GetProcAddress(GetModuleHandle("ntdll"), "NtSuspendProcess"); _NtSuspendProcess(hProcess); CloseHandle(hProcess); } void ProcessResume(DWORD PID) { HANDLE hProcess = OpenProcess(PROCESS_SUSPEND_RESUME, FALSE, PID); if(!hProcess){ printf("OpenProcess failed. ErrorCode:0x%08X\n", GetLastError()); return; } NtResumeProcess _NtResumeProcess = (NtResumeProcess)GetProcAddress(GetModuleHandle("ntdll.dll"), "NtResumeProcess"); _NtResumeProcess(hProcess); CloseHandle(hProcess); return; }