Wozu das gut sein soll, wirst du wohl selber wissen, denn es existiert ja "nur" eine dokumentierte Methode. Da ist es mehr als logisch zur undokumentierten zu greifen *kopfschüttel*
Die Native
API zeigt Fehler an, indem der Wert negativ ist. Nur weil der Rückgabewert ungleich STATUS_SUCCESS sagt das nicht, daß es einen Fehler gab. Wir haben in JwaNative.pas ja durchaus auch die Makros als Funktionen drin, wenn ich mich recht entsinne. Ansonsten checkst du eben selber auf ">= STATUS_SUCCESS".
Aber mal ehrlich, wozu fragst du eigentlich, wenn du dann doch eine andere (und zumal unzuverlässige) Methode benutzt?
EDIT:
Ach ja, ob ein Treiber entladen werden kann, hängt a.) vom Typ des Treibers und b.) von seiner Konzeption ab. Also selbst wenn der Treibertyp es erlaubt entladen zu werden, muß es der Treiber noch nicht erlauben.
Der Code enthält übrigens keinerlei C++-Features, sondern nur C. Außerdem ist Greg Hoglund eine Koryphäe auf dem Gebiet und weiß was er mit undokumentierten Aufrufen erreichen kann (und will) und was nicht. Genau das fehlt dir (offensichtlich!)