Freigeben über


Frameworkdateiobjekt

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.

Das Frameworkdateiobjekt wird von der IWDFFile-Schnittstelle für Treiber verfügbar gemacht. Es ist die Frameworkdarstellung des geöffneten Geräts. Wenn eine Anwendung das Gerät über die Microsoft Win32 CreateFile-Funktion öffnet, erstellt das Framework ein Dateiobjekt, um das geöffnete Gerät instance darzustellen. Daher entspricht das Frameworkdateiobjekt konzeptionell dem Win32-Handle, das vom Aufruf von CreateFile der Anwendung zurückgegeben wird. Das Framework kann mehrere Dateiobjekte erstellen, die einem einzelnen Gerät zugeordnet sind. Jedes Dateiobjekt wird für jeden erfolgreichen Aufruf von CreateFile erstellt. Alle E/A-Vorgänge, z. B. Lese- und Schreibvorgänge, sind auf ein bestimmtes Dateiobjekt instance ausgerichtet.

Hinweis Alle Anforderungen, die an UMDF-Treiber übergeben werden, sind Dateiobjekten zugeordnet. Anforderungen, die an WDM - und KMDF-Treiber übergeben werden, sind jedoch manchmal nicht mit Dateiobjekten verknüpft.

Ein UMDF-Treiber kann die IWDFIoRequest::GetFileObject-Methode aufrufen, um das einer Anforderung zugeordnete Dateiobjekt abzurufen.

Wenn Ihr Treiber GetFileObject aufruft, erhöht das Framework die Verweisanzahl auf der Schnittstelle. Ihr Treiber ist dafür verantwortlich, den Verweis freizugeben, wenn er mit dem Schnittstellenzeiger fertig ist. Verwenden Sie dazu entweder einen intelligenten Zeiger, der die Verweisanzahl automatisch dekrementiert, wenn das Objekt aus dem Kontext ausgeht, oder rufen Sie Release auf der Schnittstelle auf, wenn dies abgeschlossen ist. Ein Codebeispiel zur Verwendung eines intelligenten Zeigers finden Sie unter GetFileObject.