mirror of
https://github.com/mirror/processhacker
synced 2026-06-08 16:03:24 +00:00
ece5d6b051
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@3554 21ef857c-d57f-4fe0-8362-d861dc6d29cd
71 lines
1.6 KiB
C
71 lines
1.6 KiB
C
#include <phdk.h>
|
|
#include "procdb.h"
|
|
|
|
NTSTATUS PaMatchProcess(
|
|
__in PPH_PROCESS_ITEM ProcessItem,
|
|
__in PPA_PROCDB_SELECTOR Selector,
|
|
__out PBOOLEAN Match
|
|
)
|
|
{
|
|
|
|
}
|
|
|
|
NTSTATUS PaRunAction(
|
|
__in PPH_PROCESS_ITEM ProcessItem,
|
|
__in PPA_PROCDB_ACTION Action
|
|
)
|
|
{
|
|
NTSTATUS status;
|
|
HANDLE processHandle;
|
|
|
|
switch (Action->Type)
|
|
{
|
|
case ActionSetPriorityClass:
|
|
if (NT_SUCCESS(status = PhOpenProcess(
|
|
&processHandle,
|
|
PROCESS_SET_INFORMATION,
|
|
ProcessItem->ProcessId
|
|
)))
|
|
{
|
|
if (!SetPriorityClass(processHandle, Action->u.SetPriorityClass.PriorityClassWin32))
|
|
status = NTSTATUS_FROM_WIN32(GetLastError());
|
|
|
|
NtClose(processHandle);
|
|
}
|
|
|
|
break;
|
|
|
|
case ActionSetAffinityMask:
|
|
if (NT_SUCCESS(status = PhOpenProcess(
|
|
&processHandle,
|
|
PROCESS_SET_INFORMATION,
|
|
ProcessItem->ProcessId
|
|
)))
|
|
{
|
|
status = PhSetProcessAffinityMask(processHandle, Action->u.SetAffinityMask.AffinityMask);
|
|
NtClose(processHandle);
|
|
}
|
|
|
|
break;
|
|
|
|
case ActionTerminate:
|
|
if (NT_SUCCESS(status = PhOpenProcess(
|
|
&processHandle,
|
|
PROCESS_TERMINATE,
|
|
ProcessItem->ProcessId
|
|
)))
|
|
{
|
|
status = PhTerminateProcess(processHandle, STATUS_SUCCESS);
|
|
NtClose(processHandle);
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
assert(FALSE);
|
|
break;
|
|
}
|
|
|
|
return status;
|
|
}
|