Condividi tramite


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

Vedi anche