GetLogicalProcessorInformation和SetProcessAffinityMask中亲和掩码中的

Do bit indices in affinity mask in GetLogicalProcessorInformation and SetProcessAffinityMask mean the same?

本文关键字:掩码 GetLogicalProcessorInformation SetProcessAffinityMask      更新时间:2023-10-16

SetProcessAffinityMask WinAPI函数有dwProcessAffinityMask参数,其中每个比特对应一个系统中的单个逻辑处理器。

WinAPI函数有输出参数Buffer类型为PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;此结构的ProcessorMask字段是"识别此结构所描述的处理器的处理器掩码"。

是否有保证,这两个掩码中的位索引意味着相同的(对应于相同的逻辑处理器)?

我在MSDN上找不到任何明确的信息

From SetProcessAffinityMask:

进程亲和掩码是一个位向量,每个位代表一个逻辑处理器,进程的线程可以在这个逻辑处理器上运行。

SYSTEM_LOGICAL_PROCESSOR_INFORMATION不是很清楚:

ProcessorMask标识该结构所描述的处理器的处理器掩码。处理器掩码是一个位向量,其中每个设置的位代表关系中的一个活动处理器。

但是GetLogicalProcessorInformation给出了更好的信息:

缓冲区中返回的SYSTEM_LOGICAL_PROCESSOR_INFORMATION结构包含以下内容:
•逻辑处理器关联掩码,表示该结构中的信息应用于哪个逻辑处理器。

所引用的逻辑处理器关联掩码是ProcessorMask成员。