Freigeben über


ICorDebug::CreateProcess-Methode

Aktualisiert: November 2007

Startet einen Prozess und den primären Thread, die vom Debugger gesteuert werden.

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 auf NULL endende Zeichenfolge, 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 auf NULL endende Zeichenfolge, die die Befehlszeile angibt, die vom gestarteten Prozess ausgeführt werden soll.

  • lpProcessAttributes
    [in] Zeiger auf eine Win32-SECURITY_ATTRIBUTES-Struktur, die den Sicherheitsdeskriptor für den Prozess angibt. Wenn lpProcessAttributes NULL ist, ruft der Prozess einen Standardsicherheitsdeskriptor ab.

  • lpThreadAttributes
    [in] Zeiger auf eine Win32-SECURITY_ATTRIBUTES-Struktur, die den Sicherheitsdeskriptor für den primären Thread des Prozesses angibt. Wenn lpThreadAttributes NULL ist, ruft der Thread einen Standardsicherheitsdeskriptor ab.

  • bInheritHandles
    [in] Wird auf true festgelegt, um anzuzeigen, dass jeder vererbbare Handle im aufrufenden Prozess vom aufgerufenen Prozess vererbt wird. Wird auf false festgelegt, um anzuzeigen, dass die Handles nicht vererbt werden. Die vererbten Handles besitzen denselben Wert und dieselben Zugriffsrechte wie die ursprünglichen Handles.

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

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

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

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

  • lpProcessInformation
    [in] Zeiger auf eine Win32-PROCESS_INFORMATION-Struktur, die die Identifizierungsinformationen über den aufzurufenden Prozess angibt.

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

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

Hinweise

Die Parameter dieser Methode sind die gleichen wie für die Win32-CreateProcess-Methode.

Legen Sie dwCreationFlags auf DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS fest, um das nicht verwaltete Debuggen im gemischten Modus zu aktivieren. Wenn Sie nur das verwaltete Debuggen verwenden möchten, legen Sie diese Flags nicht fest.

Wenn der Debugger und der zu debuggende Prozess (der angehängte Prozess) gemeinsam eine Konsole verwenden und Interop-Debuggen aktiviert ist, kann der angehängte Prozess die Konsole sperren und bei einem Debugereignis anhalten. Der Debugger verhindert dann jeden Versuch, die Konsole zu verwenden. Um dieses Problem zu vermeiden, legen Sie das CREATE_NEW_CONSOLE-Flag im dwCreationFlags-Parameter fest.

Interop-Debuggen wird auf Win9x- und anderen Plattformen als x86, wie z. B. auf IA-64 und AMD64 basierenden Plattformen nicht unterstützt.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: CorDebug.idl

Bibliothek: CorGuids.lib

.NET Framework-Versionen: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Siehe auch

Referenz

ICorDebug