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.
Obtient une référence à un assembly qui n’est pas référencé par le ICLRAssemblyReferenceList retourné par IHostAssemblyManager::GetNonHostStoreAssemblies. Le CLR (Common Language Runtime) appelle ProvideAssembly pour chaque assembly qui n’apparaît pas dans la liste.
Syntaxe
HRESULT ProvideAssembly (
[in] AssemblyBindInfo *pBindInfo,
[out] UINT64 *pAssemblyId,
[out] UINT64 *pHostContext,
[out] IStream **ppStmAssemblyImage,
[out] IStream **ppStmPDB
);
Paramètres
pBindInfo
[in] Pointeur vers une instance de AssemblyBindInfo que l’hôte utilise pour déterminer certaines caractéristiques de liaison, notamment la présence ou l’absence d’une stratégie de gestion de versions ainsi que l’assembly à lier.
pAssemblyId
[out] Pointeur vers un identificateur unique de l’assembly demandé pour ce IStream.
pHostContext
[out] Pointeur vers des données spécifiques à l’hôte, qui permettent d’établir la preuve de l’assembly demandé sans avoir besoin d’un appel de code non managé.
pHostContext correspond à la propriété HostContext de la classe managée Assembly.
ppStmAssemblyImage
[out] Pointeur vers l’adresse d’un IStream qui contient l’image PE (Portable Executable) à charger, ou une valeur nulle si l’assembly est introuvable.
ppStmPDB
[out] Pointeur vers l’adresse d’un IStream qui contient les informations PDB (informations de débogage du programme), ou une valeur nulle si le fichier .pdb est introuvable.
Valeur de retour
| HRESULT | Description |
|---|---|
| S_OK |
ProvideAssembly retourné. |
| HOST_E_CLRNOTAVAILABLE | Le CLR n’a pas été chargé dans un processus ou son état ne lui permet pas d’exécuter du code managé ni de traiter l’appel correctement. |
| HOST_E_TIMEOUT | L’appel a expiré. |
| HOST_E_NOT_OWNER | L’appelant n’est pas propriétaire du verrou. |
| HOST_E_ABANDONED | Un événement a été annulé alors qu’un thread ou une fibre bloqué l’attendait. |
| E_FAIL | Une défaillance catastrophique inconnue s’est produite. Quand une méthode retourne E_FAIL, le CLR n’est plus utilisable au sein du processus. Les appels suivants aux méthodes d’hébergement retournent HOST_E_CLRNOTAVAILABLE. |
| COR_E_FILENOTFOUND (0x80070002) | L’assembly demandé est introuvable. |
| E_NOT_SUFFICIENT_BUFFER | La taille de la mémoire tampon spécifiée par pAssemblyId n’est pas suffisante pour contenir l’identificateur que l’hôte souhaite retourner. |
Notes
La valeur d’identité retournée pour pAssemblyId est spécifiée par l’hôte. Les identificateurs doivent être uniques pendant la durée de vie d’un processus. Le CLR utilise cette valeur en tant qu’identificateur unique pour le flux. Il vérifie chaque valeur par rapport aux valeurs de pAssemblyId retournées par d’autres appels à ProvideAssembly. Si l’hôte retourne la même valeur pAssemblyId pour un autre IStream, le CLR vérifie si le contenu de ce flux a déjà été mappé. Si tel est le cas, le runtime charge la copie existante de l’image au lieu d’en mapper une nouvelle.
Configuration requise
Plateformes : Consultez Configuration requise.
En-tête : MSCorEE.h
Bibliothèque : incluse en tant que ressource dans MsCorEE.dll
Versions de .NET Framework : Disponible depuis la version 2.0