Initialisieren eines allgemeinen E/A-Ziels 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 für neuere Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden.
Die archivierten UMDF 1-Beispiele finden Sie im Windows 11, Version 22H2 – Mai 2022 Treiberbeispiele Update.
Weitere Informationen finden Sie unter Erste Schritte mit UMDF.
Die Schritte, die Ihr Treiber zum Initialisieren eines allgemeinen E/A-Ziels verwendet, hängen davon ab, ob das E/A-Ziel lokal oder remote ist.
Initialisieren eines lokalen E/A-Ziels
Lokale E/A-Ziele umfassen das Standard-E/A-Ziel eines Geräts und dateihandlesbasierte E/A-Ziele.
Das Framework initialisiert das Standard-E/A-Ziel eines Treibers für ein Gerät, wenn der Treiber die IWDFDriver::CreateDevice-Methode aufruft . Um die IWDFIoTarget-Schnittstelle abzurufen, die dem Treiber den Zugriff auf das Standard-E/A-Ziel des Geräts ermöglicht, ruft der Treiber die IWDFDevice::GetDefaultIoTarget-Methode auf.
Die meisten Treiber senden Anforderungen nur an ihr Standard-E/A-Ziel.
Wenn ein UMDF-Treiber E/A-Anforderungen an eine handle-basierte Schnittstelle senden muss, z. B. an eine Netzwerksocketsschnittstelle, muss der Treiber ein dateihandlesbasiertes E/A-Zielobjekt erstellen. Um ein dateihandlesbasiertes E/A-Zielobjekt zu erstellen, muss der Treiber Folgendes tun:
Rufen Sie die QueryInterface-Methode der IWDFDevice-Schnittstelle des Geräts auf, um einen Zeiger auf die IWDFFileHandleTargetFactory-Schnittstelle abzurufen.
Rufen Sie ein Win32-Handle für eine Datei, benannte Pipe oder einen Socket ab, indem Sie die Win32 CreateFile-, CreateNamedPipe- oder Socketfunktion aufrufen.
Rufen Sie die IWDFFileHandleTargetFactory::CreateFileHandleTarget-Methode auf, um ein dateihandlingbasiertes E/A-Zielobjekt für die Datei, Pipe oder den Socket zu erstellen.
Ein Codebeispiel zum Abrufen der IWDFFileHandleTargetFactory-Schnittstelle , zum Abrufen eines Win32-Handles und zum Erstellen eines dateihandlesbasierten E/A-Zielobjekts finden Sie im Codebeispiel unter IWDFFileHandleTargetFactory::CreateFileHandleTargetGetGet.
Nachdem der Treiber das dateihandlebasierte E/A-Ziel erstellt hat, kann der Treiber E/A-Anforderungen an das E/A-Ziel senden.
Initialisieren eines Remote-E/A-Ziels
Bevor Ihr Treiber ein E/A-Remoteziel verwenden kann, muss er ein Remotezielobjekt erstellen und das Ziel wie folgt öffnen:
Rufen Sie IWDFDevice2::CreateRemoteTarget auf, um ein Remotezielobjekt zu erstellen.
Rufen Sie entweder IWDFRemoteTarget::OpenFileByName (für Dateien) oder IWDFRemoteTarget::OpenRemoteInterface (für Geräteschnittstellen) auf, um das Ziel für E/A-Vorgänge zu öffnen.