- 參考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;
- }