GetLogicalProcessorInformation和SetProcessAffinityMask中的affinity mask中的位索引是否相同?

时间:2013-05-24 19:34:45

标签: c++ windows winapi

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

GetLogicalProcessorInformation WinAPI函数具有PSYSTEM_LOGICAL_PROCESSOR_INFORMATION类型的输出参数Buffer;此结构的ProcessorMask字段是“标识此结构描述的处理器的处理器掩码”。

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

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

1 个答案:

答案 0 :(得分:2)

来自SetProcessAffinityMask

  

进程关联掩码是一个位向量,其中每个位表示允许进程的线程运行的逻辑处理器。

SYSTEM_LOGICAL_PROCESSOR_INFORMATION不太清楚:

  

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

GetLogicalProcessorInformation提供了更好的信息:

  

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

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