2010-03-12 3 views
2

Я использовал код от http://www.rgagnon.com/javadetails/java-0580.html, чтобы получить идентификатор материнской платы, но результат «null».Как получить идентификатор процессора и материнской платы?

  1. Как это может быть?

  2. Также я изменил код немного, чтобы посмотреть, как это, чтобы получить ProcessorId:

    "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"+ 
          "Set colItems = objWMIService.ExecQuery _ \n"+ 
          " (\"Select * from Win32_Processor\") \n"+ 
          "For Each objItem in colItems \n"+ 
          " Wscript.Echo objItem.ProcessorId \n"+ 
          " exit for ' do the first cpu only! \n"+ 
          "Next \n"; 
    

В результате получается что-то вроде: ProcessorId = BFEBFBFF00010676

На http://msdn.microsoft.com/en-us/library/aa389273%28VS.85%29.aspx он говорит:

Процессор: Информация о процессоре который описывает функции процессора. Для процессора класса x86 формат поля зависит от поддержки процессором команды CPUID. Если инструкция поддерживается, свойство содержит 2 (два) формата в формате DWORD. Первый - это смещение 08h-0Bh, которое является значением EAX, которое возвращает команда CPUID с входным EAX, установленным в 1. Второй - смещение 0Ch-0Fh, которое является значением EDX, которое возвращает инструкция. Только первые два байта свойства являются значимыми и содержат содержимое регистра DX при перезагрузке CPU - все остальные установлены в 0 (ноль), а содержимое находится в формате DWORD.

Я не совсем понимаю; на простом английском языке, является ли он уникальным или просто номером для этого класса процессоров, например, у всех Intel Core2 Duo P8400 будет этот номер?

ответ

3

С eax, установленным в 1, код операции cpuid вернет тип процессора, familly и т. Д. В eax, а процессор - в edx. Так что вы получите не что-то уникальное, как серийный номер процессора.

Смежные вопросы