Freigeben über


End-User E/A-Anforderungen und Dateiobjekte

Kernelmodustreiber werden für Endbenutzer durch ein geschütztes Subsystem ausgeblendet, das eine bereits vertraute Programmierschnittstelle wie Windows oder POSIX implementiert. Geräte sind für Benutzermoduscode sichtbar, der geschützte Subsysteme enthält, nur als benannte Dateiobjekte, die vom E/A-Manager gesteuert werden.

Die folgende Abbildung veranschaulicht diese Beziehung zwischen einem Endbenutzer, einem Subsystem und dem E/A-Manager.

Diagramm zur Veranschaulichung von Dateiobjekten, die Dateien, Volumes und Geräte darstellen.

Ein geschütztes Subsystem, z. B. das Win32-Subsystem, übergibt E/A-Anforderungen an den entsprechenden Kernelmodustreiber über die E/A-Systemdienste. Das in der vorherigen Abbildung gezeigte Subsystem hängt von der Unterstützung der Gerätetreiber für Anzeige, Grafikkarte, Tastatur und Maus ab.

Ein geschütztes Subsystem schützt seine Endbenutzer und Anwendungen davor, etwas über Kernelmoduskomponenten wissen zu müssen, einschließlich Treibern. Im Gegenzug schützt der E/A-Manager geschützte Subsysteme davor, etwas über computerspezifische Gerätekonfigurationen oder Treiberimplementierungen wissen zu müssen.

Der mehrschichtige Ansatz des E/A-Managers verhindert auch, dass die meisten Treiber nichts über Folgendes wissen müssen:

  • Gibt an, ob eine E/A-Anforderung aus einem bestimmten geschützten Subsystem stammt, z. B. Win32 oder POSIX

  • Gibt an, ob ein bestimmtes geschütztes Subsystem über bestimmte Arten von Benutzermodustreibern verfügt

  • Was ist das E/A-Modell und die Schnittstelle zu Treibern eines geschützten Subsystems?

Der E/A-Manager stellt Treibern ein einzelnes E/A-Modell, eine Reihe von Kernelmodus-Supportroutinen bereit, die Treiber zum Ausführen von E/A-Vorgängen verwenden können, sowie eine konsistente Schnittstelle zwischen dem Absender einer E/A-Anforderung und den Treibern, die darauf reagieren müssen.

Wie in der vorherigen Abbildung gezeigt, können ein Subsystem und seine nativen Anwendungen nur über vom E/A-Manager bereitgestellte Dateiobjekthandles auf ein Treibergerät oder eine Datei auf einem Massenspeichergerät zugreifen. Zum Öffnen eines solchen Dateiobjekts oder zum Abrufen eines Handles für E/A für ein Gerät oder eine Datendatei ruft ein Subsystem die E/A-Systemdienste mit einer Anforderung zum Öffnen einer benannten Datei auf. Die benannte Datei kann über einen subsystemspezifischen Alias (symbolische Verknüpfung) zum Kernelmodusnamen für das Dateiobjekt verfügen.

Der E/A-Manager, der diese Systemdienste exportiert, ist dann für die Suche oder Erstellung des Dateiobjekts, das das Gerät oder die Datendatei darstellt, und für die Suche nach den entsprechenden Treibern verantwortlich.