Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. AMD or Intel

AMD or Intel

Scheduled Pinned Locked Moved C / C++ / MFC
windows-adminhardwarearchitecturequestionworkspace
24 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • _ _Flaviu

    Is there any reliable location in windows registry that tell if the architecture of the machine is AMD or Intel ? If there is, where is this location ? I know this location:

    HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0

    and Identifier key, but my machine is Intel ... and I don't know what would be this value on AMD case ... is this a reliable location ? P.S. Also, I know that I could find here:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

    PROCESSOR_ARCHITECTURE has AMD64 value, even if I have Intel machine ...

    D Offline
    D Offline
    Daniel Pfeffer
    wrote on last edited by
    #21

    1. As someone already mentioned, the CPUID instruction gives you this information. It may be called using compiler intrinsics (#include <intrin.h>) on the Microsoft compiler. See [here](https://en.wikipedia.org/wiki/CPUID) for fuller documentation. Pay attention to the EAX=0 function (Get Manufacturer ID). 2. It appears that the same information may be found in the Registry at HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\VendorIdentifier

    Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

    _ 1 Reply Last reply
    0
    • D Daniel Pfeffer

      1. As someone already mentioned, the CPUID instruction gives you this information. It may be called using compiler intrinsics (#include <intrin.h>) on the Microsoft compiler. See [here](https://en.wikipedia.org/wiki/CPUID) for fuller documentation. Pay attention to the EAX=0 function (Get Manufacturer ID). 2. It appears that the same information may be found in the Registry at HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\VendorIdentifier

      Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

      _ Offline
      _ Offline
      _Flaviu
      wrote on last edited by
      #22

      Thank you all of you.

      1 Reply Last reply
      0
      • _ _Flaviu

        Richard, I am sorry if I was evasive ... Thank you for your patience. I am working on some code which execute some depending of what kind of processor:

        BOOL bIsIntel = FALSE;
        SYSTEM_INFO si;
        GetSystemInfo(&si);
        bIsIntel = (si.wProcessorArchitecture == xxx);
        if(bIsIntel)
        {
        // execute some code (I cannot write here what kind of code)
        }
        else
        {
        // execute else code
        }

        Furthermore, the code is critical as speed of execution. So, I noticed that GetSystemInfo is taking a time, specially on older machines. So, I intend to retrieve from registry if the machine is AMD or Intel. That is all. I am not hiding anything. If I omitting anything, please tell me, and I will write here. P.S. I don't have any AMD machine, or my colleagues ... if I would, I had tested myself.

        D Offline
        D Offline
        David Crow
        wrote on last edited by
        #23

        One way would be to run a registry-watching program (e.g., Process Explorer) while this piece of code executes. Then you can see what key(s) are being read.

        "One man's wage rise is another man's price increase." - Harold Wilson

        "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

        "You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles

        _ 1 Reply Last reply
        0
        • D David Crow

          One way would be to run a registry-watching program (e.g., Process Explorer) while this piece of code executes. Then you can see what key(s) are being read.

          "One man's wage rise is another man's price increase." - Harold Wilson

          "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

          "You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles

          _ Offline
          _ Offline
          _Flaviu
          wrote on last edited by
          #24

          Very good idea. I think I would try this solution too, however, the location from HARDWARE\... seem to show what I need it.

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups