Working with Intel AMT: Getting Started

In last week's post, I talked about the Overview training, which covers the basic concepts of Intel AMT. Before you jump into the second web-based training, it's important that you understand these concepts. Here's my explanation:

    • Think of CIM objects as containers.

    • Inside of each container is information about the system.

    • Each container is labeled based on the information it contains.
      • A container labeled "Processor" has information about the processor (speed, manufacturer, etc).

    • WS-Management allows you to work with these containers.

    • The WS-Management Get function returns a specific container.

        • To get information about the system's processor, you would use Get(typeof(CIM_ProcessorType)).

        • This will return the container labeled "Processor."

    • The WS-Management Enumerate function returns a list of all containers matching certain criteria (known as selectors).
        • Since the system may have more than one memory module, you would use Enumerate(typeof(CIM_PhysicalMemoryType)) to get information about the system's physical memory.

      • This will return all containers labeled "PhysicalMemory."



    With an understanding of these basic concepts, you should be ready to start the second web-based training, How to Develop Applications for Intel AMT. The training walks you through developing a simple AMT application in C# and C++ (I use C#).

    In the training application code, you'll notice that the GetEndpointReference function is used before the Get function. Alternatively, you can use the Enumerate function, going through each CIM_SoftwareIdentityType instance until you find one whose InstanceID is "AMT FW Core Version." The GetEndpointReference function does this for you, using selectors to return the location of the "container." The Get function then returns the actual CIM object. Both methods will work. The code below shows how to get the AMT Version using the Enumerate function as described above.

    WSManClient client = new WSManClient("ip", "username", "password", false);
    ArrayList enum_softwareIdentity = client.Enumerate(typeof(CIM_SoftwareIdentityType));
    for (IEnumerator enumObj = enum_softwareIdentity.GetEnumerator(); enumObj.MoveNext(); )
    {
    CIM_SoftwareIdentityType softwareIdentity = (CIM_SoftwareIdentityType)(enumObj.Current);
    if (softwareIdentity.InstanceID == "AMT FW Core Version")
    {
    Console.WriteLine("AMT Version: {0}", softwareIdentity.VersionString);
    break;
    }
    }


    You should now be able to write a simple application for Intel AMT! Remember to set up the client PC before testing your code (this video explains how). If you're having trouble up to this point, please leave a comment/question and I'll do my best to help. I'll also be posting some sample code in the near future, so be sure to check my blog posts regularly.

    Einzelheiten zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.