ICLRDebugging::OpenVirtualProcess, méthode

Obtient l’interface ICorDebugProcess correspondant à un module CLR (Common Language Runtime) chargé dans le processus.

Syntaxe

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);

Paramètres

moduleBaseAddress [in] L’adresse de base d’un module dans le processus cible. COR_E_NOT_CLR est retourné si le module spécifié n’est pas un module CLR.

pDataTarget [in] Une abstraction de la cible de données qui permet au débogueur managé d’inspecter l’état du processus. Le débogueur doit implémenter l’interface ICorDebugDataTarget. Vous devez implémenter l’interface ICLRDebuggingLibraryProvider pour prendre en charge les scénarios où le CLR en cours de débogage n’est pas installé localement sur l’ordinateur.

pLibraryProvider [in] Une interface de rappel du fournisseur de bibliothèque permettant la localisation et le chargement à la demande des bibliothèques de débogage spécifiques de la version. Ce paramètre n’est requis que si ppProcess ou pFlags n’est pas null.

pMaxDebuggerSupportedVersion [in] La version la plus élevée du CLR que ce débogueur peut déboguer. Vous devez spécifier les versions majeure, mineure et de build de la dernière version du CLR que ce débogueur prend en charge, et définir le numéro de révision sur 65535 pour prendre en charge les futures versions de maintenance sur place du CLR.

riidProcess [in] L’ID de l’interface ICorDebugProcess à récupérer. Actuellement, les seules valeurs acceptées sont IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2 et IID_CORDEBUGPROCESS.

ppProcess [out] Un pointeur vers l’interface COM identifiée par riidProcess.

pVersion [in, out] La version du CLR. Lors de l’entrée, cette valeur peut être null. Elle peut également pointer vers une structure CLR_DEBUGGING_VERSION, auquel cas le champ de wStructVersion la structure doit être initialisé à 0 (zéro).

À la sortie, la structure CLR_DEBUGGING_VERSION retournée est renseignée avec les informations de version du CLR.

pdwFlags [out] Les indicateurs informatifs sur le runtime spécifié. Pour obtenir une description des indicateurs, consultez la rubrique CLR_DEBUGGING_PROCESS_FLAGS.

Valeur de retour

Cette méthode retourne les HRESULT spécifiques suivants ainsi que les erreurs HRESULT indiquant l'échec de la méthode.

HRESULT Description
S_OK La commande s'est correctement terminée.
E_POINTER pDataTarget est null.
CORDBG_E_LIBRARY_PROVIDER_ERROR Le rappel d’ICLRDebuggingLibraryProvider retourne une erreur ou ne fournit pas de descripteur valide.
CORDBG_E_MISSING_DATA_TARGET_INTERFACE pDataTarget n’implémente pas les interfaces cibles de données requises pour cette version du runtime.
CORDBG_E_NOT_CLR Le module indiqué n’est pas un module CLR. Ce HRESULT est également retourné quand un module CLR ne peut pas être détecté parce que la mémoire a été endommagée, que le module n’est pas disponible ou que la version de CLR est postérieure à la version de shim.
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL Cette version du runtime ne prend pas en charge ce modèle de débogage. Actuellement, le modèle de débogage n’est pas pris en charge par les versions CLR antérieures à .NET Framework 4. Le paramètre de sortie pwszVersion est toujours défini sur la valeur correcte après cette erreur.
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT La version du CLR est supérieure à la version que ce débogueur prétend prendre en charge. Le paramètre de sortie pwszVersion est toujours défini sur la valeur correcte après cette erreur.
E_NO_INTERFACE L’interface riidProcess n’est pas disponible.
CORDBG_E_UNSUPPORTED_VERSION_STRUCT La structure CLR_DEBUGGING_VERSION n’a pas de valeur reconnue pour wStructVersion. La seule valeur acceptée à ce stade est 0.

Exceptions

Notes

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : CorDebug.idl, CorDebug.h

Bibliothèque : CorGuids.lib

Versions du .NET Framework : Disponibles depuis 4

Versions de .NET : Disponibles depuis .NET Core 2.1

Voir aussi