Я пытаюсь сгенерировать случайный 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 :
Свойство ProcessorId из WMI имеет следующее описание:
Информация о процессоре, которая описывает функции процессора.Для CPU класса x86 формат поля зависит от поддержки процессором инструкции CPUID.Если инструкция поддерживается, свойство содержит 2 (два) значения в формате DWORD.Первым является смещение 08h-0Bh, которое является значением EAX, которое инструкция CPUID возвращает с входом EAX, установленным на 1. Второе, является смещением 0Ch-0Fh, которое является значением EDX, которое возвращает инструкция.Только первые два байта свойства являются значимыми и содержат содержимое регистра DX при перезагрузке ЦП - все остальные установлены в 0 (ноль), а содержимое в формате DWORD.
Это значение исходит изэлемент идентификатора процессора в информационной структуре процессора в информации SMBIOS.
Может ли кто-нибудь глубоко объяснить формат Win32_Processor.ProcessorId ?
Как его сгенерироватьиз функции __ cpuid ?
(метод в этот ответ не работает.)