ICLRDebugging::OpenVirtualProcess — Metoda
Pobiera interfejs ICorDebugProcess odpowiadający modułowi środowiska uruchomieniowego języka wspólnego (CLR) załadowanym w procesie.
Składnia
HRESULT OpenVirtualProcess(
[in] ULONG64 moduleBaseAddress,
[in] IUnknown * pDataTarget,
[in] ICLRDebuggingLibraryProvider * pLibraryProvider,
[in] CLR_DEBUGGING_VERSION * pMaxDebuggerSupportedVersion,
[in] REFIID riidProcess,
[out, iid_is(riidProcess)] IUnknown ** ppProcess,
[in, out] CLR_DEBUGGING_VERSION * pVersion,
[out] CLR_DEBUGGING_PROCESS_FLAGS * pdwFlags);
Parametry
moduleBaseAddress
[in] Podstawowy adres modułu w procesie docelowym. COR_E_NOT_CLR zostanie zwrócona, jeśli określony moduł nie jest modułem CLR.
pDataTarget
[in] Abstrakcja docelowa danych, która umożliwia zarządzanemu debugerowi inspekcję stanu procesu. Debuger musi zaimplementować interfejs ICorDebugDataTarget . Należy zaimplementować interfejs ICLRDebuggingLibraryProvider w celu obsługi scenariuszy, w których debugowane środowisko CLR nie jest instalowane lokalnie na komputerze.
pLibraryProvider
[in] Interfejs wywołania zwrotnego dostawcy biblioteki, który umożliwia zlokalizowanie i załadowanie bibliotek debugowania specyficznych dla wersji na żądanie. Ten parametr jest wymagany tylko wtedy, gdy ppProcess
parametr lub pFlags
nie null
jest .
pMaxDebuggerSupportedVersion
[in] Najwyższa wersja środowiska CLR, którą ten debuger może debugować. Należy określić wersje główne, pomocnicze i kompilacji z najnowszej wersji środowiska CLR obsługiwanej przez ten debuger i ustawić numer poprawki na 65535, aby uwzględnić przyszłe wersje obsługi środowiska CLR.
riidProcess
[in] Identyfikator interfejsu ICorDebugProcess do pobrania. Obecnie jedyne akceptowane wartości to IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2 i IID_CORDEBUGPROCESS.
ppProcess
[out] Wskaźnik do interfejsu COM, który jest identyfikowany przez riidProcess
.
pVersion
[in, out] Wersja środowiska CLR. W danych wejściowych ta wartość może mieć wartość null
. Może również wskazywać CLR_DEBUGGING_VERSION strukturę, w tym przypadku pole struktury wStructVersion
musi zostać zainicjowane do wartości 0 (zero).
W danych wyjściowych zwrócona struktura zostanie wypełniona CLR_DEBUGGING_VERSION
informacjami o wersji środowiska CLR.
pdwFlags
[out] Flagi informacyjne dotyczące określonego środowiska uruchomieniowego. Aby uzyskać opis flag, zobacz temat CLR_DEBUGGING_PROCESS_FLAGS.
Wartość zwracana
Ta metoda zwraca następujące określone elementy HRESULTs, a także błędy HRESULT wskazujące niepowodzenie metody.
HRESULT | opis |
---|---|
S_OK | Metoda została ukończona pomyślnie. |
E_POINTER | Parametr pDataTarget ma wartość null . |
CORDBG_E_LIBRARY_PROVIDER_ERROR | Wywołanie zwrotne ICLRDebuggingLibraryProvider zwraca błąd lub nie zapewnia prawidłowego dojścia. |
CORDBG_E_MISSING_DATA_TARGET_INTERFACE | pDataTarget nie implementuje wymaganych interfejsów docelowych danych dla tej wersji środowiska uruchomieniowego. |
CORDBG_E_NOT_CLR | Wskazany moduł nie jest modułem CLR. Ten element HRESULT jest również zwracany, gdy nie można wykryć modułu CLR, ponieważ pamięć została uszkodzona, moduł jest niedostępny lub wersja środowiska CLR jest nowsza niż wersja podkładki. |
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL | Ta wersja środowiska uruchomieniowego nie obsługuje tego modelu debugowania. Obecnie model debugowania nie jest obsługiwany przez wersje środowiska CLR przed programem .NET Framework 4. Parametr pwszVersion wyjściowy jest nadal ustawiony na poprawną wartość po tym błędzie. |
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT | Wersja środowiska CLR jest nowsza niż wersja, która obsługuje ten debuger. Parametr pwszVersion wyjściowy jest nadal ustawiony na poprawną wartość po tym błędzie. |
E_NO_INTERFACE | Interfejs riidProcess jest niedostępny. |
CORDBG_E_UNSUPPORTED_VERSION_STRUCT | Struktura CLR_DEBUGGING_VERSION nie ma rozpoznanej wartości dla elementu wStructVersion . Jedyną zaakceptowaną wartością w tej chwili jest 0. |
Wyjątki
Uwagi
Wymagania
Platformy: zobacz Wymagania systemowe.
Nagłówek: CorDebug.idl, CorDebug.h
Biblioteka: CorGuids.lib
Wersje programu .NET Framework: dostępne od 4
Wersje platformy .NET: dostępne od wersji .NET Core 2.1