2

SetProcessAffinityMask()函数接受一个DWORD掩码,因此它不能在超过 32 个处理器的系统上正确使用。

看起来SetThreadGroupAffinity()是为了以某种方式解决这个问题,但我找不到任何有用的代码示例来说明它的用法?

如何使用SetProcessAffinityMask()/GetProcessAffinityMask()来调整我的程序,使其适用于超过 32 个处理器的系统?有代码示例吗?

4

1 回答 1

2

首先SetProcessAffinityMask()接受DWORD_PTR。由于 32 位版本的操作系统不支持 >32 内核,这意味着您正在谈论 64 位操作系统。因此,实际限制为SetProcessAffinityMask()64。

至于如何处理 >64,我认为具有超过 64 个处理器的支持系统白皮书会告诉您您需要了解的内容。


编辑

您在评论中声明您的代码是在 64 位操作系统上运行的 32 位代码。

据我了解,如果您在 64 位操作系统上的 32 位模拟器中运行,则对非常细粒度的控制的支持有限。假设是,如果您想利用这些新功能,您应该停止使用模拟器。

于 2011-03-23T15:03:11.200 回答