Allgemeine E/A-Ziele in UMDF

Warnung

UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 in neueren Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden.

Die archivierten UMDF 1-Beispiele finden Sie im Treiberbeispielupdate Windows 11, Version 22H2 – Mai 2022.

Weitere Informationen finden Sie unter Erste Schritte mit UMDF.

Allgemeine E/A-Ziele, die entweder lokal oder remote sein können, sind E/A-Ziele, die keine speziellen gerätespezifischen Datenformate wie USB-Anforderungsblöcke unterstützen. Bevor Treiber Daten an ein allgemeines E/A-Ziel senden, müssen sie Daten in einem Schreibpuffer in einem Format ablegen, das das E/A-Ziel und das Gerät interpretieren können. Ebenso müssen Treiber, wenn Treiber Daten aus einem allgemeinen E/A-Ziel lesen, in der Lage sein, den Inhalt der Datenpuffer zu interpretieren, die sie vom Ziel empfangen.

Lokale E/A-Ziele
Treiber senden häufig E/A-Anforderungen an den nächstniedrigen Treiber im Treiberstapel. Daher verfügt jeder UMDF-basierte Treiber über ein Standard-E/A-Ziel für jedes Gerät, bei dem es sich um den nächstniedrigen Treiber des Geräts handelt. Das Standard-E/A-Ziel für den UMDF-basierten Treiber der niedrigsten Ebene ist der Kernelmodusreflektor.

Manchmal muss ein UMDF-basierter Treiber E/A-Anforderungen an ein dateihandlesbasiertes E/A-Ziel senden, z. B. an eine Datei oder einen Netzwerksocket. Daher stellt das Framework auch dateihandlesbasierte E/A-Zielobjekte bereit.

Sowohl das Standard-E/A-Ziel als auch dateihandlesbasierte E/A-Ziele werden als lokale E/A-Ziele bezeichnet, da UMDF-basierte Treiber diese Ziele verwenden, um E/A-Anforderungen an Geräte zu senden, die der Treiberstapel unterstützt.

Remote-E/A-Ziele
Gelegentlich muss ein Treiber eine E/A-Anforderung an einen anderen Treiberstapel senden. Daher stellt das Framework auch Remote-E/A-Ziele bereit, die aus allen E/A-Zielen mit Ausnahme lokaler E/A-Ziele bestehen.

Ein Remote-E/A-Ziel kann ein Gerät sein, das vom Treiberstapel nicht unterstützt wird, eine Datei auf diesem Gerät oder eine Geräteschnittstelle für dieses Gerät.

In den folgenden Abschnitten wird beschrieben, wie Sie ein allgemeines E/A-Ziel initialisieren und verwenden: