Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

RtlCreateUserProcess: Fehlerhafte Initialisation

  Alt 29. Mär 2009, 16:18
Hey,

ich wollte mal bisschen mit der RtlCreateUserProcess API rumspielen und habe folgenden Code geschrieben:

Delphi-Quellcode:
procedure TfrmMain.Button2Click(Sender: TObject);
var
  ProcessParameters: PRTL_USER_PROCESS_PARAMETERS;
  ProcessInfo: RTL_PROCESS_INFORMATION;
  ImageFileName,
  SystemDirectory: UNICODE_STRING;
begin
  FillChar(ProcessInfo, SizeOf(RTL_PROCESS_INFORMATION), #0);
  ProcessInfo.Size := SizeOf(RTL_PROCESS_INFORMATION);

  RtlInitUnicodeString(@ImageFileName, '\??\C:\Windows\notepad.exe');
  RtlInitUnicodeString(@SystemDirectory, '\??\C:\Windows\System32');

  RtlCreateProcessParameters(@ProcessParameters, @ImageFileName,
    @SystemDirectory, nil, nil, 0, nil, nil, nil, nil);

  RtlCreateUserProcess(@ImageFileName, OBJ_CASE_INSENSITIVE,
    ProcessParameters, nil, nil, 0, false, 0, 0, @ProcessInfo);
  NtResumeThread(ProcessInfo.hThread, nil);

  RtlDestroyProcessParameters(@ProcessParameters);
end;
Der Prozess wird erzeugt, alle APIs geben STATUS_SUCCESS zurück, aber wenn ich mit NtResumeThread den Prozess laufen lasse, erscheint folgende Fehlermeldung:

Zitat:
---------------------------
notepad.exe - Fehler in Anwendung
---------------------------
Die Anwendung konnte nicht richtig initialisiert werden (0xc0000033). Klicken Sie auf "OK", um die Anwendung zu beenden.
---------------------------
OK
---------------------------
Ich nehme mal an, dass ich irgendwas bei den ProcessParameters falsch gemacht habe. Hat jemand ne Idee woran das liegen könnte?

Gruß Zacherl
  Mit Zitat antworten Zitat