ICorDebug::CreateProcess — Metoda
Uruchamia proces i jego podstawowy wątek pod kontrolą debugera.
Składnia
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
);
Parametry
lpApplicationName
[in] Wskaźnik do ciągu zakończonego wartością null, który określa moduł do wykonania przez uruchomiony proces. Moduł jest wykonywany w kontekście zabezpieczeń procesu wywołującego.
lpCommandLine
[in] Wskaźnik do ciągu zakończonego wartością null, który określa wiersz polecenia, który ma być wykonywany przez uruchomiony proces. Nazwa aplikacji (na przykład "SomeApp.exe") musi być pierwszym argumentem.
lpProcessAttributes
[in] Wskaźnik do struktury Win32 SECURITY_ATTRIBUTES
, która określa deskryptor zabezpieczeń dla procesu. Jeśli lpProcessAttributes
wartość ma wartość null, proces pobiera domyślny deskryptor zabezpieczeń.
lpThreadAttributes
[in] Wskaźnik do struktury Win32 SECURITY_ATTRIBUTES
, która określa deskryptor zabezpieczeń dla podstawowego wątku procesu. Jeśli lpThreadAttributes
ma wartość null, wątek pobiera domyślny deskryptor zabezpieczeń.
bInheritHandles
[in] Ustaw wartość , aby true
wskazać, że każdy dziedziczony uchwyt w procesie wywołującym jest dziedziczony przez uruchomiony proces lub false
wskazuje, że dojścia nie są dziedziczone. Dziedziczone dojścia mają tę samą wartość i prawa dostępu co oryginalne dojścia.
dwCreationFlags
[in] Bitowa kombinacja flag tworzenia procesu Win32, które kontrolują klasę priorytetu i zachowanie uruchomionego procesu.
lpEnvironment
[in] Wskaźnik do bloku środowiskowego dla nowego procesu.
lpCurrentDirectory
[in] Wskaźnik do ciągu zakończonego wartością null, który określa pełną ścieżkę do bieżącego katalogu dla procesu. Jeśli ten parametr ma wartość null, nowy proces będzie miał ten sam bieżący dysk i katalog co proces wywołujący.
lpStartupInfo
[in] Wskaźnik do struktury Win32 STARTUPINFOW
, która określa stację okien, pulpit, standardowe uchwyty i wygląd głównego okna dla uruchomionego procesu.
lpProcessInformation
[in] Wskaźnik do struktury Win32 PROCESS_INFORMATION
, która określa informacje identyfikacyjne dotyczące procesu do uruchomienia.
debuggingFlags
[in] Wartość wyliczenia CorDebugCreateProcessFlags, która określa opcje debugowania.
ppProcess
[out] Wskaźnik do adresu obiektu ICorDebugProcess, który reprezentuje proces.
Uwagi
Parametry tej metody są takie same jak parametry metody Win32 CreateProcess
.
Aby włączyć debugowanie w trybie mieszanym niezarządzanym, ustaw wartość dwCreationFlags
DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS. Jeśli chcesz używać tylko debugowania zarządzanego, nie ustawiaj tych flag.
Jeśli debuger i proces debugowania (dołączony proces) współużytkują pojedynczą konsolę, a jeśli jest używane debugowanie międzyoperacyjne, możliwe jest, że dołączony proces przechowywania blokad konsoli i zatrzymywania w zdarzeniu debugowania. Następnie debuger zablokuje wszelkie próby użycia konsoli. Aby uniknąć tego problemu, ustaw flagę CREATE_NEW_CONSOLE w parametrze dwCreationFlags
.
Debugowanie międzyoperacyjne nie jest obsługiwane na platformach Win9x i innych niż x86, takich jak oparte na protokole IA-64 i platformy oparte na amd64.
Wymagania
Platformy: zobacz Wymagania systemowe.
Nagłówek: CorDebug.idl, CorDebug.h
Biblioteka: CorGuids.lib
Wersje programu .NET Framework: dostępne od wersji 1.0