Freigeben über


Ausführen von Code

Die Common Language Runtime stellt eine Infrastruktur bereit, die die verwaltete Ausführung sowie eine Reihe von Diensten ermöglicht, die während der Ausführung verwendet werden können. Vor Ausführung einer Methode muss diese in prozessorspezifischen Code kompiliert werden. Jede Methode, für die MSIL (Microsoft Intermediate Language) generiert wurde, wird beim ersten Aufruf JIT-kompiliert (Just-In-Time) und anschließend ausgeführt. Beim nächsten Ausführen der Methode wird der vorhandene JIT-kompilierte, systemeigene Code ausgeführt. Das JIT-Kompilieren und anschließende Ausführen des Codes wird so lange wiederholt, bis die Ausführung vollständig abgeschlossen ist.

Verwaltetem Code stehen während der Ausführung verschiedene Dienste zur Verfügung, z. B. Garbage Collection, Sicherheit, Interoperabilität mit nicht verwaltetem Code, sprachübergreifende Debugunterstützung sowie verbesserte Unterstützung der Bereitstellung und Versionserstellung.

Unter Microsoft Windows XP sucht das Ladeprogramm des Betriebssystems nach verwalteten Modulen, indem ein Bit im Header des COFF (Common Object File Format) überprüft wird. Das festgelegte Bit steht dabei für ein verwaltetes Modul. Wenn das Ladeprogramm verwaltete Module entdeckt, wird mscoree.dll geladen. Das Ladeprogramm wird durch _CorValidateImage und _CorImageUnloading benachrichtigt, wenn die Images des verwalteten Moduls geladen und entladen werden. _CorValidateImage führt die folgenden Aktionen aus:

  1. Überprüfen, dass es sich um gültigen verwalteten Code handelt

  2. Ändern des Einstiegspunktes im Image in einen Einstiegspunkt zur Laufzeit

Unter 64-Bit-Windows ändert _CorValidateImage das Image im Arbeitsspeicher vom Format PE32 in das Format PE32+.

Siehe auch

Konzepte

Der verwaltete Ausführungsprozess

Weitere Ressourcen

Sicherheit in .NET Framework
Interaktion mit nicht verwaltetem Code
Bereitstellen von .NET Framework-Anwendungen