Was ein Embedded Controller ist, kann man ausführlich in der Wikipedia nachlesen. Kurz gesagt steuert er die vielen Sonderfunktionen heutiger Notebooks wie Battrieladung, Lüfter, Temperatursensoren, usw. Der Zugriff auf diesen kleinen Coprozessor ist jedoch unter Windows nicht gerade einfach. Viele Programmierer nutzen daher Bibliotheken um direkt auf die Hardware zuzugreifen. Dies führt oft zu Fehlermeldungen im EventLog und anderen Problemen. Dies liegt daran, dass Windows eigentlich einen Treiber für diese Bausteine mitliefert. Dieser nennt sich acpiec.sys. Leider ist die Dokumentation zu diesem Treiber mehr als dürftig. Also habe ich mir gedacht, dass etwas reverse engineering nicht schaden kann. Das Ergebnis meiner Bemühungen ist eine DLL, welche den Zugriff auf den Ebedded Controller von Notebooks (zumindest auf meinem Thinkpad und einem Aspire One) unter Windows XP erlaubt.
Die Projektseite ist diesmal ausnahmsweise in englisch gehalten, da ich keine Lust habe zwei Webseiten zu pflegen.
Ich habe jetzt einmal die Version 0.6 des Tools (hiermit lassen sich alle 256 Register des Controllers lesen und schreiben) sowie die Version 0.4 der DLL bereitgestellt. Besonders interessier wäre ich an Berichten, ob das ganze auch unter Windows Vista (mit Administrator rechten) funktioniert. Wenn jemand das Tool auf einem anderen Notebook testen kann, bin ich ebenfalls an Feedback sehr interessiert.