Metodo ICLRDebugging::OpenVirtualProcess
Ottiene l'interfaccia ICorDebugProcess che corrisponde a un modulo CLR (Common Language Runtime) caricato nel processo.
Sintassi
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);
Parametri
moduleBaseAddress
[in] Indirizzo di base di un modulo nel processo di destinazione. COR_E_NOT_CLR verrà restituito se il modulo specificato non è un modulo CLR.
pDataTarget
[in] Astrazione di destinazione dati che consente al debugger gestito di controllare lo stato del processo. Il debugger deve implementare l'interfaccia ICorDebugDataTarget . È necessario implementare l'interfaccia ICLRDebuggingLibraryProvider per supportare scenari in cui CLR in fase di debug non è installato localmente nel computer.
pLibraryProvider
[in] Interfaccia di callback del provider di librerie che consente di individuare e caricare librerie di debug specifiche della versione su richiesta. Questo parametro è obbligatorio solo se ppProcess
o pFlags
non null
è .
pMaxDebuggerSupportedVersion
[in] Versione più recente di CLR di cui il debugger può eseguire il debug. È necessario specificare le versioni principali, secondarie e build dalla versione CLR più recente supportata dal debugger e impostare il numero di revisione su 65535 per supportare le future versioni di manutenzione CLR sul posto.
riidProcess
[in] ID dell'interfaccia ICorDebugProcess da recuperare. Attualmente, gli unici valori accettati sono IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2 e IID_CORDEBUGPROCESS.
ppProcess
[out] Puntatore all'interfaccia COM identificata da riidProcess
.
pVersion
[in, out] Versione di CLR. In input, questo valore può essere null
. Può anche puntare a una struttura CLR_DEBUGGING_VERSION , nel qual caso il campo della wStructVersion
struttura deve essere inizializzato su 0 (zero).
In caso di output, la struttura restituita verrà compilata CLR_DEBUGGING_VERSION
con le informazioni sulla versione per CLR.
pdwFlags
[out] Flag informativi sul runtime specificato. Per una descrizione dei flag, vedere l'argomento CLR_DEBUGGING_PROCESS_FLAGS .
Valore restituito
Questo metodo restituisce gli specifici HRESULT seguenti, nonché gli errori di HRESULT che indicano la mancata riuscita del metodo.
HRESULT | Descrizione |
---|---|
S_OK | Metodo completato correttamente. |
E_POINTER | pDataTarget è .null |
CORDBG_E_LIBRARY_PROVIDER_ERROR | Il callback ICLRDebuggingLibraryProvider restituisce un errore o non fornisce un handle valido. |
CORDBG_E_MISSING_DATA_TARGET_INTERFACE | pDataTarget non implementa le interfacce di destinazione dati necessarie per questa versione del runtime. |
CORDBG_E_NOT_CLR | Il modulo indicato non è un modulo CLR. Questo valore HRESULT viene restituito anche quando non è possibile rilevare un modulo CLR perché la memoria è danneggiata, il modulo non è disponibile o la versione CLR è successiva alla versione shim. |
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL | Questa versione di runtime non supporta questo modello di debug. Attualmente, il modello di debug non è supportato dalle versioni CLR precedenti a .NET Framework 4. Il pwszVersion parametro di output è ancora impostato sul valore corretto dopo questo errore. |
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT | La versione di CLR è maggiore della versione supportata dal debugger. Il pwszVersion parametro di output è ancora impostato sul valore corretto dopo questo errore. |
E_NO_INTERFACE | L'interfaccia riidProcess non è disponibile. |
CORDBG_E_UNSUPPORTED_VERSION_STRUCT | La CLR_DEBUGGING_VERSION struttura non ha un valore riconosciuto per wStructVersion . L'unico valore accettato al momento è 0. |
Eccezioni
Osservazioni:
Requisiti
Piattaforme: vedere Requisiti di sistema.
Intestazione: CorDebug.idl, CorDebug.h
Libreria: CorGuids.lib
Versioni di .NET Framework: disponibili dalla versione 4
Versioni .NET: disponibili a partire da .NET Core 2.1