- 参考http://madcloudsong.com/articles/138中的方法
- //此处只处理了32位的进程
- #include
- #pragma comment (lib,"psapi.lib")
- //提升权限
- void VengConfig::AdjustTokenPrivilegesForNT()
- {
- HANDLE hToken;
- TOKEN_PRIVILEGES tkp;
- OpenProcessToken(GetCurrentProcess(),
- TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
- LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid);
- tkp.PrivilegeCount = 1;
- tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
- AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
- }
- //执行快速清理,这里只清理了自身,如想释放所有内存,则枚举所有进程,然后释放
- BOOL VengConfig::EmptyCurrentProcMemory(void)
- {
- DWORD dwProcessId = GetCurrentProcessId();
- HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,TRUE,dwProcessId);
- if(hProcess)
- {
- SetProcessWorkingSetSize(hProcess,-1,-1);
- EmptyWorkingSet(hProcess);
- CloseHandle(hProcess);
- return TRUE;
- }
- return FALSE;
- }