The project is about developing a small API based on some open sourced code that already gathers info from Windows, in order to generate a DeviceReport exposing information about the current device in an organized manner, including a UniqueId, which must be based on a component that's not usually changed, such as a motherboard or processor.
The developer will have to justify the source of the Unique Id generation and make sure the logic supports the most famous VM engines.
The API must expose a class named "DeviceIdentifier" implementing the following contract:
//extra information such as processor model, graphic card model, Ram amount.
Internally, the DeviceIdentifier can use any of the code that are referenced at the end of the document.
- The API must be able to generate consistent Unique Id on Windows PC's and any of the known virtual machine engines. (As a little help, the shared code provides already a way to identify if it's being run on any of those engines)
- The developer must test the api DeviceReport on every virtual machine engine, with 1 and multiple virtual machines, and generate a demo proving the correct functionality of the API.
Here is the list of the VM engines that must be supported:
- The API must be well organized in order to just expose publicly what's useful.
- The API must gather whatever code it needs from outside sources and use it internally in order to output just 1 dll for the DeviceIdentifier.
Existing code bases to work with:
- DeviceId -> [login to view URL]
- VmDetector -> [login to view URL]