Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Crée un handle qui encapsule un objet spécifié.
Syntaxe
HRESULT CreateHandle(
[in] ObjectID object,
[in] COR_PRF_HANDLE_TYPE type,
[out] ObjectHandleID* pHandle);
Paramètres
object
[in] Référence d’objet à encapsuler avec un handle.
type
[in] Type de handle à créer.
pHandle
[out] Pointeur fourni par l’appelant qui pointe vers le handle créé pour encapsuler le pointeur spécifié object.
Remarques
Voici les utilisations attendues en fonction de la valeur spécifiée COR_PRF_HANDLE_TYPE :
-
COR_PRF_HANDLE_TYPE_WEAK: surveille si un objet reste en mémoire au fil du temps. Si l’objet encapsulé a été collecté, ICorProfilerInfo13 ::GetObjectIDFromHandle renvoie une valeur NullObjectID. -
COR_PRF_HANDLE_TYPE_STRONG: applique qu’un objet survive aux garbage collections même si aucun autre objet ne le fait référence. -
COR_PRF_HANDLE_TYPE_PINNED: identique à un handle fort, mais garantit également que l’objet reste à la même adresse en mémoire pendant les garbage collections.
Pour vous assurer que la object référence est valide, cette méthode doit être appelée à partir d’une ICorProfilerCallback méthode telle que ICorProfilerCallback ::ObjectAllocated. Vous ne pouvez pas appeler CreateHandle à partir d’un écouteur asynchrone EventPipe. L’objet reçu via une charge utile d’événement a peut-être été supprimé ou déplacé en mémoire si un garbage collection s’est produit entre le moment où l’événement a été émis et quand il a été reçu.
N’oubliez pas d’appeler ICorProfilerInfo13 ::D estroyHandle une fois qu’un handle créé n’est plus nécessaire. Il est recommandé d’avoir moins de 4 096 handles alloués en même temps pour éviter d’affecter les performances du garbage collector.
Spécifications
Plates-formes: Consultez les systèmes d’exploitation pris en charge par .NET.
En-tête: CorProf.idl, CorProf.h
Versions de .NET : Disponible depuis .NET 7.0