Wenn dein Tool im WoW64-Emulator ausgeführt wird, sollte es vielleicht seinen Dienst verweigern (oder die Funktionen auf dokumentierte APIs beschränkt werden).
Die Informationen über 64-Bit Prozesse sind offensichtlich fehlerhaft und es treten BSODs bei diversen Funktionen auf (z.B. Tray-Icons).
Gruß Nico
Delphi-Quellcode:
{$IFDEF WIN32}
function IsWow64Process(hProcess: THandle): Boolean;
type
TFNIsWow64Process =
function(hProcess: THandle;
out Wow64Process: BOOL):
BOOL;
stdcall;
var
FNIsWow64Process: TFNIsWow64Process;
Wow64Process: BOOL;
begin
FNIsWow64Process := TFNIsWow64Process(
GetProcAddress(GetModuleHandle(kernel32), '
IsWow64Process'));
if not Assigned(FNIsWow64Process)
then
Result := False
else
Result := FNIsWow64Process(hProcess, Wow64Process)
and Wow64Process;
end;
{$ELSE}
function IsWow64Process(hProcess: THandle): Boolean;
begin
Result := False;
end;
{$ENDIF}