While trying to use Intel AMT API we faced the following problems. Please comment because they affect the quality of the application we’re developing.
- SOL, programming realization
There’s a utility called “Manageability Commander Tool”. It’s an open source utility, that, according to Intel demonstrates possibilities of vPro, AMT. It has been downloaded from here: http://communities.intel.com/docs/DOC-1171. We connect to a remote PC, open SOL (Serial over LAN redirection) session. Then we reload the PC into BIOS. BIOS is loaded. But pressing any key now results in a dialog to quit BIOS, as if an ESC key has been pressed. Is there any workaround for this problem?
See the screenshots below. They contain version information as well as the look and feel of the problem we experience.
- Problem using library Intel AMT HLAPI in order to access IDE-R functionality (Redirection):
The method IRedirectionIDER.StartIDERCD(String)raises an exception when trying to mount a physical CD disk:
ManageabilityException: <DISK LETTER> is not a Removable drive.
The exception is reaised by RedirectionIDERImpl inside the method:
void RedirectionIDERImpl.StartIDER(string cd, string floppy, IDERTimeouts timeouts, RedirectState redirectionState)
This is the specific code piece:
if (driveInfo.Name.ToLower().CompareTo(string.Concat(floppy.ToLower(), "\\")) == 0)
if (driveInfo.DriveType != DriveType.Removable)
throw new ManageabilityException(string.Concat(floppy, " is not a Removable drive"));
flag1 = true;
- Problems reading data from the system log. It occurs when we’re trying to get a list of events using Intel AMT HLAPI:
VManager.Adapter.Exceptions.ComputerManagementException was unhandled by user code
Message=Non-negative number required.
Parameter name: byteCount
at System.Text.ASCIIEncoding.GetString(Byte bytes, Int32 byteIndex, Int32 byteCount)
at HLAPI.Services.EventParser.GetDescription(UInt32 eventSensorType, UInt32 eventType, UInt32 eventOffset, Byte eventData)
at Intel.Manageability.Impl.EventLogManager.ParseLog(List`1 records)
at VManager.Adapter.IntelAMT.IntelAMTEventLogAdapter.GetEventLogs(IEventLogFilter filter)
We assume the following line fails:
stringBuilder.Append(Encoding.ASCII.GetString(eventData, 1, Encoding.ASCII.GetString(eventData, 1, 6).IndexOf('\0')).TrimEnd(chrArray));
and suppose that the reason is this: Encoding.ASCII.GetString(eventData, 1, 6).IndexOf('\0')) equals -1