Freigeben über


ICorDebug::CreateProcess-Methode

Startet einen Prozess und den zugehörigen primären Thread unter der Kontrolle des Debuggers.

Syntax

HRESULT CreateProcess (  
    [in]  LPCWSTR                     lpApplicationName,  
    [in]  LPWSTR                      lpCommandLine,  
    [in]  LPSECURITY_ATTRIBUTES       lpProcessAttributes,  
    [in]  LPSECURITY_ATTRIBUTES       lpThreadAttributes,  
    [in]  BOOL                        bInheritHandles,  
    [in]  DWORD                       dwCreationFlags,  
    [in]  PVOID                       lpEnvironment,  
    [in]  LPCWSTR                     lpCurrentDirectory,  
    [in]  LPSTARTUPINFOW              lpStartupInfo,  
    [in]  LPPROCESS_INFORMATION       lpProcessInformation,  
    [in]  CorDebugCreateProcessFlags  debuggingFlags,  
    [out] ICorDebugProcess            **ppProcess  
);  

Parameter

lpApplicationName
[in] Zeiger auf eine Zeichenfolge mit NULL am Ende, die das Modul angibt, das vom gestarteten Prozess ausgeführt werden soll. Das Modul wird im Sicherheitskontext des aufrufenden Prozesses ausgeführt.

lpCommandLine
[in] Zeiger auf eine Zeichenfolge mit NULL am Ende, die die Befehlszeile angibt, die vom gestarteten Prozess ausgeführt werden soll. Der Anwendungsname (z. B. „SomeApp.exe“) muss das erste Argument sein.

lpProcessAttributes
[in] Zeiger auf eine SECURITY_ATTRIBUTES-Win32-Struktur, die die Sicherheitsbeschreibung für den Prozess angibt. Wenn lpProcessAttributes NULL ist, erhält der Prozess eine Standardsicherheitsbeschreibung.

lpThreadAttributes
[in] Zeiger auf eine SECURITY_ATTRIBUTES-Win32-Struktur, die die Sicherheitsbeschreibung für den primären Thread des Prozesses angibt. Wenn lpThreadAttributes NULL ist, erhält der Thread eine Standardsicherheitsbeschreibung.

bInheritHandles
[in] Legen Sie diesen Wert auf true fest, um anzugeben, dass jedes vererbbare Handle im aufrufenden Prozess vom gestarteten Prozess geerbt wird. Legen Sie ihn auf false fest, um anzugeben, dass die Handles nicht geerbt werden. Die geerbten Handles verfügen über den gleichen Wert und die gleichen Zugriffsrechte wie die ursprünglichen Handles.

dwCreationFlags
[in] Eine bitweise Kombination der Win32-Prozesserstellungsflags, die die Prioritätsklasse und das Verhalten des gestarteten Prozesses steuern.

lpEnvironment
[in] Zeiger auf einen Umgebungsblock für den neuen Prozess.

lpCurrentDirectory
[in] Zeiger auf eine Zeichenfolge mit NULL am Ende, die den vollständigen Pfad zum aktuellen Verzeichnis für den Prozess angibt. Wenn dieser Parameter NULL ist, verwendet der neue Prozess dasselbe aktuelle Laufwerk und Verzeichnis wie der aufrufende Prozess.

lpStartupInfo
[in] Zeiger auf eine STARTUPINFOW-Win32-Struktur, die Fensterstation, Desktop, Standardhandles und Darstellung des Hauptfensters für den gestarteten Prozess angibt.

lpProcessInformation
[in] Zeiger auf eine PROCESS_INFORMATION-Win32-Struktur, die die Identifikationsinformationen zum zu startenden Prozess angibt.

debuggingFlags
[in] Ein Wert der CorDebugCreateProcessFlags-Enumeration, der die Debugoptionen angibt.

ppProcess
[out] Ein Zeiger auf die Adresse eines ICorDebugProcess-Objekts, das die den Prozess darstellt.

Bemerkungen

Die Parameter dieser Methode sind mit denen der Win32-Methode CreateProcess identisch.

Um das nicht verwaltete Debuggen im gemischten Modus zu aktivieren, legen Sie dwCreationFlags auf DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS fest. Setzen Sie diese Flags nicht, wenn Sie nur verwaltetes Debuggen verwenden möchten.

Wenn der Debugger und der zu debuggende Prozess (der angefügte Prozess) eine einzelne Konsole gemeinsam nutzen und das Interop-Debuggen verwendet wird, ist es möglich, dass der angefügte Prozess Konsolensperren beibehält und bei einem Debugereignis anhält. Der Debugger blockiert dann jeden Versuch, die Konsole zu verwenden. Um dieses Problem zu vermeiden, setzen Sie das CREATE_NEW_CONSOLE-Flag im dwCreationFlags-Parameter.

Das Interop-Debuggen wird auf Win9x- und Nicht-x86-Plattformen wie IA-64-basierten und AMD64-basierten Plattformen nicht unterstützt.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorDebug.idl, CorDebug.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: Seit Version 1.0 verfügbar

Weitere Informationen