Udostępnij za pośrednictwem


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

Zobacz też