Présentation détaillée de l'appel de code non managé
L'appel de plateforme s'appuie sur les métadonnées pour localiser les fonctions exportées et marshaler leurs arguments au moment de l'exécution. L'illustration ci-dessous montre ce processus.
Appel de plateforme à une fonction DLL non managée
Lorsque l'appel de plateforme appelle une fonction non managée, elle procède aux différentes actions suivantes :
Elle localise la DLL qui contient la fonction.
Elle charge la DLL dans la mémoire.
Elle localise l'adresse de la fonction dans la mémoire et empile ses arguments, en marshalant si nécessaire les données.
Remarque La recherche et le chargement de la DLL ainsi que la recherche de l'adresse de la fonction en mémoire ne se produisent que lors du premier appel à la fonction.
Elle transfère le contrôle à la fonction non managée.
L'appel de plateforme lève des exceptions générées par la fonction non managée à l'appelant managé.