【发布时间】:2018-10-28 15:16:49
【问题描述】:
我正在尝试生成随机的 ProcessorId,为此,我需要弄清楚它的格式。
我电脑上的 ProcessorId:
Get-WmiObject -Query "SELECT NAME, ProcessorId FROM Win32_Processor"
__GENUS : 2
__CLASS : Win32_Processor
__SUPERCLASS :
__DYNASTY :
__RELPATH :
__PROPERTY_COUNT : 2
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Name : Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz
ProcessorId : BFEBFBFF000306A9
PSComputerName :
WMI 的 ProcessorId 属性有以下描述:
描述处理器功能的处理器信息。为 x86 类 CPU,字段格式取决于处理器支持 CPUID 指令。如果支持该指令,则属性 包含 2(两个)DWORD 格式的值。第一个是偏移量 08h-0Bh,这是 CPUID 指令返回的 EAX 值 输入 EAX 设置为 1。第二个是 0Ch-0Fh 的偏移量,即 指令返回的 EDX 值。只有前两个字节 该属性很重要并且包含 DX 的内容 CPU 复位时的寄存器——所有其他寄存器都设置为 0(零),并且内容 是 DWORD 格式。
此值来自处理器的处理器 ID 成员 SMBIOS信息中的信息结构。
谁能深入解释一下Win32_Processor.ProcessorId的格式?
如何从函数__cpuid生成?
(this answer中的方法不起作用。)
【问题讨论】:
-
它是documented: "数据类型:uint32"。匹配 winapi 声明,DWORD。它不是一个随机数。
标签: visual-c++