hier zerstörst du das
Handle, bevor irgendwer irgendwas damit anfangen konnte (CloseHandle)... des weiteren dürften mehr Permissions als nur SYNCHRONIZE notwendig sein, um die Affinität zu ändern:
Delphi-Quellcode:
function GetProcessHandleFromID(ID: DWORD): THandle;
begin
result := OpenProcess(SYNCHRONIZE, False, ID);
CloseHandle(result);
end;