Программно установить привязку процессора к приложению

У нас есть приложение C ++ COM-сервера, из которого пользователь может выбирать и запускать свои собственные процессы. Я хочу добавить функцию «Набор сходства процессоров» в приложении запуска.

Заказчик имеет многопроцессорную систему (2 физических процессора). Пользователь даст физический номер ЦП, 1 или 2. Средство запуска приложений должно установить привязку процессора к своим приложениям на основе ввода пользователя. если они дают номер ЦП как 2, то приложения, запускаемые из модуля запуска, должны использовать ЦП 2.

Как рассчитать маску сродства процессора (на основе процессора)?

Это приложение запуска должно работать на компьютерах с Windows XP 32 и 64 Windows. Также тип процессора может варьироваться от машины к машине (Intel, AMD или другие).

Приложение разработано как COM-сервер (C ++).

Пожалуйста, предоставьте мне хорошее решение.

2

Решение

Не уверен, что ваш вопрос хотел бы получить номер процессора или установить его

//To get the CPU
HANDLE hProcess = GetCurrentProcess();
SYSTEM_INFO SystemInfo;
GetSystemInfo(&SystemInfo);
unsigned int nMaxProcessorMask = (1 << SystemInfo.dwNumberOfProcessors) - 1;
// Set the max processor mask
SetProcessAffinityMask(hProcess, nMaxProcessorMask);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]