Zitat von
_BlackDragon_:
Delphi-Quellcode:
// hier den Namen eines Treibers anhand des Pointers ermitteln
function TForm3.GetDriverBaseName(pImageBase: Pointer): String;
var
lpBaseName: PChar;
size: Cardinal;
begin
size := GetDeviceDriverBaseName(pImageBase, lpBaseName, MAX_PATH);
Result := StrPas(lpBaseName);
end;
Wie soll das so auch klappen? Du übergibst als Zieladresse für lpBaseName einen uninitialisierten Pointer. Das ist aber ein out Parameter, wie du auch in der Dokumentation siehst:
http://msdn.microsoft.com/en-us/library/ms683184.aspx
Du musst also zuerst einmal so viel Speicher reservieren wie du als Größe dieses Buffers als dritten Parameter übergibst.