Кто знает, что будет, если я установлю SetThreadAffinityMask, например, 0x00000002, и программа будет работать на ПК только с одним процессором? Я не нашел об этом моменте в литературе.
Система игнорирует любые биты, которые не соответствуют процессорам. Таким образом, в вашем примере вы пытаетесь установить соответствие потока ни с одним из доступных процессоров в маске соответствия процессов, и вызов SetThreadAffinityMask завершается неудачей.
SetThreadAffinityMask