Dieses IF ist schon richtig so.
> Wenn der Kernel-Index größer als die Anzahl ist, dann auf den letzten Kern setzen.
Aber die nachfolgende Umrechnung von "Index" auf "Maske" fehlte.
Delphi-Quellcode:
if iKernelNumb > lpSystemInfo.dwNumberOfProcessors then
iKernelNumb := lpSystemInfo.dwNumberOfProcessors;
if SetProcessAffinityMask(hProc, $1 shl (iKernelNumb - 1)) then
Wobei ich es etwas unpraktisch finde, daß man hier einen 1-basierenden Index verwendet.