C++ 有些人的代码似乎返回了一个不同的ProcessorID

C++ 有些人的代码似乎返回了一个不同的ProcessorID,c++,.net,processor,C++,.net,Processor,我支持日本供应商提供的一些软件。他们使用有时间限制的许可证代码保护软件。该代码仅适用于使用硬件ID的特定计算机,该硬件ID似乎是使用PC组件的几个不同ID创建的 但是,在大约150台机器中的一些机器上,许可证有时会停止工作,因为硬件id已更改。 现在,他们的软件工具会生成硬件组件的txt文件,这样我就可以查看之前和之后的内容,并查看发生了什么变化。 仅选取我在其中一个文件中可以看到的已更改的行 CurrentClockSpeed : 784 ProcessorId : 178BFBFF001

我支持日本供应商提供的一些软件。他们使用有时间限制的许可证代码保护软件。该代码仅适用于使用硬件ID的特定计算机,该硬件ID似乎是使用PC组件的几个不同ID创建的

但是,在大约150台机器中的一些机器上,许可证有时会停止工作,因为硬件id已更改。
现在,他们的软件工具会生成硬件组件的txt文件,这样我就可以查看之前和之后的内容,并查看发生了什么变化。
仅选取我在其中一个文件中可以看到的已更改的行

CurrentClockSpeed : 784  
ProcessorId : 178BFBFF00100F63  
  1011110001011111110111111111100000000000100000000111101100011  
另一方面

CurrentClockSpeed : 2800  
ProcessorId : 078BFBFF00100F63 
如果我把这些处理器ID转换成二进制,那么我有

CurrentClockSpeed : 784  
ProcessorId : 178BFBFF00100F63  
  1011110001011111110111111111100000000000100000000111101100011  

  0011110001011111110111111111100000000000100000000111101100011  
现在我无法访问他们的代码,他们告诉我他们认为问题出在硬件上。有人超频了它,或者一个CPU内核出现了默认值,导致代码选择另一个内核

(我可以想象不同的内核可能有不同的相邻id,但我希望LSB是要更改的,而不是MSB。)
我仍然不相信他们的解释。特别是由于id仅改变1位

这似乎是Get CPUID调用吗?如果是,不同的内核是否具有不同的ID?即使他们这样做了,这能解释不断变化的时钟速度吗

get CPUID似乎建议它提供线程当前运行的核心的相关信息。在2核系统上,这是否可以有效地在2个值中的1个值之间随机进行?

我很高兴得到任何关于这方面的建议/意见

如果这正是你所担心的,那么将流程的亲和力设置为单个核心就相当简单了。这就是说,如果你是对的,人们会期望他们的许多客户会抱怨——多核系统已经成为多年的标准;如果你的系统只有两个内核,我会非常惊讶。此外,您将在所有机器上看到这一点

最终,您需要与之交谈的是供应商,而不是堆栈溢出